summaryrefslogtreecommitdiff
path: root/indra/llmath
diff options
context:
space:
mode:
authorandreykproductengine <andreykproductengine@lindenlab.com>2017-09-01 17:06:25 +0300
committerandreykproductengine <andreykproductengine@lindenlab.com>2017-09-01 17:06:25 +0300
commit58cea615c53d625d31943c9af062e2143bc6cb2b (patch)
treee8a8217b9648715972fde4d573bd9ac4ec836568 /indra/llmath
parentbf1af55a060b25e2de291c66a4d848dd969729ed (diff)
MAINT-7649 Error with information in case of failed allocation.
Diffstat (limited to 'indra/llmath')
-rw-r--r--indra/llmath/llvolume.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/indra/llmath/llvolume.cpp b/indra/llmath/llvolume.cpp
index 7a54d83b3f..b0ac3c9436 100644
--- a/indra/llmath/llvolume.cpp
+++ b/indra/llmath/llvolume.cpp
@@ -5311,19 +5311,31 @@ void LLVolumeFace::cacheOptimize()
S32 num_verts = mNumVertices;
S32 size = ((num_verts*sizeof(LLVector2)) + 0xF) & ~0xF;
LLVector4a* pos = (LLVector4a*) ll_aligned_malloc<64>(sizeof(LLVector4a)*2*num_verts+size);
+ if (pos == NULL)
+ {
+ LL_ERRS("LLVOLUME") << "Allocation of positions vector[" << sizeof(LLVector4a) * 2 * num_verts + size << "] failed. " << LL_ENDL;
+ }
LLVector4a* norm = pos + num_verts;
LLVector2* tc = (LLVector2*) (norm + num_verts);
LLVector4a* wght = NULL;
if (mWeights)
{
- wght = (LLVector4a*) ll_aligned_malloc_16(sizeof(LLVector4a)*num_verts);
+ wght = (LLVector4a*)ll_aligned_malloc_16(sizeof(LLVector4a)*num_verts);
+ if (wght == NULL)
+ {
+ LL_ERRS("LLVOLUME") << "Allocation of weights[" << sizeof(LLVector4a) * num_verts << "] failed" << LL_ENDL;
+ }
}
LLVector4a* binorm = NULL;
if (mTangents)
{
binorm = (LLVector4a*) ll_aligned_malloc_16(sizeof(LLVector4a)*num_verts);
+ if (binorm == NULL)
+ {
+ LL_ERRS("LLVOLUME") << "Allocation of binormals[" << sizeof(LLVector4a)*num_verts << "] failed" << LL_ENDL;
+ }
}
//allocate mapping of old indices to new indices