diff options
author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2024-07-19 20:17:37 +0300 |
---|---|---|
committer | Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com> | 2024-07-29 21:20:38 +0300 |
commit | c4ff0b48898de86b9ee8e198395e16a8429c8aa4 (patch) | |
tree | 6b142eebb25f0f7fee253daa4d4b83b1d7f94a2c /indra/newview/llviewerobject.cpp | |
parent | 5d25504f8335132d0d222b266f8772062c88b335 (diff) |
viewer#2071 Properly handle 'out of memory' for meshes
Diffstat (limited to 'indra/newview/llviewerobject.cpp')
-rw-r--r-- | indra/newview/llviewerobject.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index 094d866bc1..fd85d75d98 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -1521,7 +1521,12 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys, S32 size = mesgsys->getSizeFast(_PREHASH_ObjectData, block_num, _PREHASH_ExtraParams); if (size > 0) { - U8 *buffer = new U8[size]; + U8 *buffer = new(std::nothrow) U8[size]; + if (!buffer) + { + LLError::LLUserWarningMsg::showOutOfMemory(); + LL_ERRS() << "Bad memory allocation for buffer, size: " << size << LL_ENDL; + } mesgsys->getBinaryDataFast(_PREHASH_ObjectData, _PREHASH_ExtraParams, buffer, size, block_num); LLDataPackerBinaryBuffer dp(buffer, size); |