SL-14150 Comment for clarity and removed redundant check
parent
0bf11e45ea
commit
ac875d1876
|
|
@ -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())
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue