diff options
Diffstat (limited to 'indra/llrender')
| -rw-r--r-- | indra/llrender/llimagegl.cpp | 21 | 
1 files changed, 18 insertions, 3 deletions
| diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp index 6eb7da302f..01bd4aba26 100644 --- a/indra/llrender/llimagegl.cpp +++ b/indra/llrender/llimagegl.cpp @@ -1284,7 +1284,12 @@ void LLImageGL::setManualImage(U32 target, S32 miplevel, S32 intformat, S32 widt              if (pixels != nullptr)              {                  use_scratch = true; -                scratch = new U32[width * height]; +                scratch = new(std::nothrow) U32[width * height]; +                if (!scratch) +                { +                    LL_ERRS() << "Failed to allocate " << (U32)(width * height * sizeof(U32)) +                              << " bytes for a manual image W" << width << " H" << height << LL_ENDL; +                }                  U32 pixel_count = (U32)(width * height);                  for (U32 i = 0; i < pixel_count; i++) @@ -1304,7 +1309,12 @@ void LLImageGL::setManualImage(U32 target, S32 miplevel, S32 intformat, S32 widt              if (pixels != nullptr)              {                  use_scratch = true; -                scratch = new U32[width * height]; +                scratch = new(std::nothrow) U32[width * height]; +                if (!scratch) +                { +                    LL_ERRS() << "Failed to allocate " << (U32)(width * height * sizeof(U32)) +                        << " bytes for a manual image W" << width << " H" << height << LL_ENDL; +                }                  U32 pixel_count = (U32)(width * height);                  for (U32 i = 0; i < pixel_count; i++) @@ -1327,7 +1337,12 @@ void LLImageGL::setManualImage(U32 target, S32 miplevel, S32 intformat, S32 widt              if (pixels != nullptr)              {                  use_scratch = true; -                scratch = new U32[width * height]; +                scratch = new(std::nothrow) U32[width * height]; +                if (!scratch) +                { +                    LL_ERRS() << "Failed to allocate " << (U32)(width * height * sizeof(U32)) +                        << " bytes for a manual image W" << width << " H" << height << LL_ENDL; +                }                  U32 pixel_count = (U32)(width * height);                  for (U32 i = 0; i < pixel_count; i++) | 
