From ac875d18768c88f6fb52cbbd0713d1fa9be7e534 Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <andreykproductengine@lindenlab.com>
Date: Fri, 23 Oct 2020 00:17:29 +0300
Subject: [PATCH] SL-14150 Comment for clarity and removed redundant check

---
 indra/newview/lltexturecache.cpp | 70 ++------------------------------
 1 file changed, 4 insertions(+), 66 deletions(-)

diff --git a/indra/newview/lltexturecache.cpp b/indra/newview/lltexturecache.cpp
index 649a9946486..87e38a26af7 100644
--- a/indra/newview/lltexturecache.cpp
+++ b/indra/newview/lltexturecache.cpp
@@ -2090,46 +2090,6 @@ LLPointer<LLImageRaw> LLTextureCache::readFromFastCache(const LLUUID& id, S32& d
 	return raw;
 }
 
-#if LL_WINDOWS
-
-static const U32 STATUS_MSC_EXCEPTION = 0xE06D7363; // compiler specific
-
-U32 exception_dupe_filter(U32 code, struct _EXCEPTION_POINTERS *exception_infop)
-{
-    if (code == STATUS_MSC_EXCEPTION)
-    {
-        // C++ exception, go on
-        return EXCEPTION_CONTINUE_SEARCH;
-    }
-    else
-    {
-        // handle it
-        return EXCEPTION_EXECUTE_HANDLER;
-    }
-}
-
-//due to unwinding
-void dupe(LLPointer<LLImageRaw> &raw)
-{
-    raw = raw->duplicate();
-}
-
-void logExceptionDupplicate(LLPointer<LLImageRaw> &raw)
-{
-    __try
-    {
-        dupe(raw);
-    }
-    __except (exception_dupe_filter(GetExceptionCode(), GetExceptionInformation()))
-    {
-        // convert to C++ styled exception
-        char integer_string[32];
-        sprintf(integer_string, "SEH, code: %lu\n", GetExceptionCode());
-        throw std::exception(integer_string);
-    }
-}
-#endif
-
 //return the fast cache location
 bool LLTextureCache::writeToFastCache(LLUUID image_id, S32 id, LLPointer<LLImageRaw> raw, S32 discardlevel)
 {
@@ -2146,7 +2106,8 @@ bool LLTextureCache::writeToFastCache(LLUUID image_id, S32 id, LLPointer<LLImage
 	c = raw->getComponents();
 
 	S32 i = 0 ;
-	
+
+	// Search for a discard level that will fit into fast cache
 	while(((w >> i) * (h >> i) * c) > TEXTURE_FAST_CACHE_DATA_SIZE)
 	{
 		++i ;
@@ -2158,31 +2119,8 @@ bool LLTextureCache::writeToFastCache(LLUUID image_id, S32 id, LLPointer<LLImage
 		h >>= i;
 		if(w * h *c > 0) //valid
 		{
-			//make a duplicate to keep the original raw image untouched.
-
-            try
-            {
-#if LL_WINDOWS
-                // Temporary diagnostics for scale/duplicate crash
-                logExceptionDupplicate(raw);
-#else
-                raw = raw->duplicate();
-#endif
-            }
-            catch (...)
-            {
-                removeFromCache(image_id);
-                LL_ERRS() << "Failed to cache image: " << image_id
-                    << " local id: " << id
-                    << " Exception: " << boost::current_exception_diagnostic_information()
-                    << " Image new width: " << w
-                    << " Image new height: " << h
-                    << " Image new components: " << c
-                    << " Image discard difference: " << i
-                    << LL_ENDL;
-
-                return false;
-            }
+            // make a duplicate to keep the original raw image untouched.
+            raw = raw->duplicate();
 
 			if (raw->isBufferInvalid())
 			{
-- 
GitLab