diff options
| author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2021-10-08 00:41:26 +0300 | 
|---|---|---|
| committer | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2021-10-08 01:32:48 +0300 | 
| commit | fea2d7bacca421be87794f3ece5c1e6a8fa7414b (patch) | |
| tree | 9657778cddc04fa4feddce4843de5c1c603a9dbc | |
| parent | 171681644ecd3bdf2eb86c6fb03044f65e4311de (diff) | |
SL-16152 _Allocate failed
| -rw-r--r-- | indra/llmath/llvolume.cpp | 29 | 
1 files changed, 15 insertions, 14 deletions
| diff --git a/indra/llmath/llvolume.cpp b/indra/llmath/llvolume.cpp index e085fa6ada..2393f8acc0 100644 --- a/indra/llmath/llvolume.cpp +++ b/indra/llmath/llvolume.cpp @@ -5295,22 +5295,23 @@ bool LLVolumeFace::cacheOptimize()  	{  		triangle_data.resize(mNumIndices / 3);  		vertex_data.resize(mNumVertices); -	} -	catch (std::bad_alloc&) -	{ -		LL_WARNS("LLVOLUME") << "Resize failed" << LL_ENDL; -		return false; -	} -	for (U32 i = 0; i < mNumIndices; i++) -	{ //populate vertex data and triangle data arrays -		U16 idx = mIndices[i]; -		U32 tri_idx = i/3; +        for (U32 i = 0; i < mNumIndices; i++) +        { //populate vertex data and triangle data arrays +            U16 idx = mIndices[i]; +            U32 tri_idx = i / 3; -		vertex_data[idx].mTriangles.push_back(&(triangle_data[tri_idx])); -		vertex_data[idx].mIdx = idx; -		triangle_data[tri_idx].mVertex[i%3] = &(vertex_data[idx]); -	} +            vertex_data[idx].mTriangles.push_back(&(triangle_data[tri_idx])); +            vertex_data[idx].mIdx = idx; +            triangle_data[tri_idx].mVertex[i % 3] = &(vertex_data[idx]); +        } +    } +    catch (std::bad_alloc&) +    { +        // resize or push_back failed +        LL_WARNS("LLVOLUME") << "Resize for " << mNumVertices << " vertices failed" << LL_ENDL; +        return false; +    }  	/*F32 pre_acmr = 1.f;  	//measure cache misses from before rebuild | 
