summaryrefslogtreecommitdiff
path: root/indra/llrender
diff options
context:
space:
mode:
authorandreykproductengine <andreykproductengine@lindenlab.com>2018-07-26 20:06:26 +0300
committerandreykproductengine <andreykproductengine@lindenlab.com>2018-07-26 20:06:26 +0300
commite24d4c9f4d2f37ee80685c6ab276633b94b366b8 (patch)
treed78c2549bb124973e87cce4f53273fd7a2e01687 /indra/llrender
parent8c8a44f430cc373d3a09308c5efdc420c1571d11 (diff)
MAINT-8923 Better allocation failure handling, createGLTexture crashes
Diffstat (limited to 'indra/llrender')
-rw-r--r--indra/llrender/llimagegl.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp
index 89500dcc04..40217b2e80 100644
--- a/indra/llrender/llimagegl.cpp
+++ b/indra/llrender/llimagegl.cpp
@@ -1262,7 +1262,8 @@ BOOL LLImageGL::createGLTexture()
stop_glerror();
if (!mTexName)
{
- LL_ERRS() << "LLImageGL::createGLTexture failed to make an empty texture" << LL_ENDL;
+ LL_WARNS() << "LLImageGL::createGLTexture failed to make an empty texture" << LL_ENDL;
+ return FALSE;
}
return TRUE ;
@@ -1395,7 +1396,16 @@ BOOL LLImageGL::createGLTexture(S32 discard_level, const U8* data_in, BOOL data_
}
if (!mTexName)
{
- LL_ERRS() << "LLImageGL::createGLTexture failed to make texture" << LL_ENDL;
+ if (old_name)
+ {
+ sGlobalTextureMemory -= mTextureMemory;
+ LLImageGL::deleteTextures(1, &old_name);
+ disclaimMem(mTextureMemory);
+ stop_glerror();
+ }
+
+ LL_WARNS() << "LLImageGL::createGLTexture failed to make texture" << LL_ENDL;
+ return FALSE;
}
if (mUseMipMaps)