diff options
author | William Todd Stinson <stinson@lindenlab.com> | 2012-11-12 15:27:56 -0800 |
---|---|---|
committer | William Todd Stinson <stinson@lindenlab.com> | 2012-11-12 15:27:56 -0800 |
commit | 93995ada0561e75efdf3f532cf638fbcb1d2ee69 (patch) | |
tree | e56517f408561b683aea2b6cc63ab0f1de139d9d /indra | |
parent | 8a3384adafff1b34d5a903e4d8cfd2dabca9e243 (diff) |
MAINT-1894: FIX This *should* fix a crash in the LLVolume::resizePath() method. The callstacks indicated that the std library was throwing a length exception on the std::vector::resize() call. Most likely cause was that the recent changes for flexi-prims were causing the mRenderRes to become negative. And thus, the 1<<mRenderRes calculation was generating a really large value for num_render_sections.
Diffstat (limited to 'indra')
-rw-r--r-- | indra/newview/llflexibleobject.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/indra/newview/llflexibleobject.cpp b/indra/newview/llflexibleobject.cpp index ef412a6bbf..43be28ce71 100644 --- a/indra/newview/llflexibleobject.cpp +++ b/indra/newview/llflexibleobject.cpp @@ -431,6 +431,15 @@ void LLVolumeImplFlexible::doFlexibleUpdate() //the object is not visible return ; } + + // stinson 11/12/2012: Need to check with davep on the following. + // Skipping the flexible update if render res is negative. If we were to continue with a negative value, + // the subsequent S32 num_render_sections = 1<<mRenderRes; code will specify a really large number of + // render sections which will then create a length exception in the std::vector::resize() method. + if (mRenderRes < 0) + { + return; + } S32 num_sections = 1 << mSimulateRes; |