summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorWilliam Todd Stinson <stinson@lindenlab.com>2012-11-12 15:27:56 -0800
committerWilliam Todd Stinson <stinson@lindenlab.com>2012-11-12 15:27:56 -0800
commit93995ada0561e75efdf3f532cf638fbcb1d2ee69 (patch)
treee56517f408561b683aea2b6cc63ab0f1de139d9d /indra
parent8a3384adafff1b34d5a903e4d8cfd2dabca9e243 (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.cpp9
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;