summaryrefslogtreecommitdiff
path: root/indra/newview/llflexibleobject.cpp
diff options
context:
space:
mode:
authorprep <prep@lindenlab.com>2012-11-28 16:36:34 -0500
committerprep <prep@lindenlab.com>2012-11-28 16:36:34 -0500
commite0432f98ee515f9777604aa784d28b63d2abfe40 (patch)
tree398fcae43d9904bde2112a7085c7ef7c1a926100 /indra/newview/llflexibleobject.cpp
parentbf87920fc91e2ca2b8d9f6f2656ad632c3005164 (diff)
parentf5a47417fde70f78b99744386c6da0bcf78e60d5 (diff)
SH-3563. Pull and merge from viewer-development. Modest code changes to fix alignment issue in llAppearance.
Diffstat (limited to 'indra/newview/llflexibleobject.cpp')
-rw-r--r--indra/newview/llflexibleobject.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/indra/newview/llflexibleobject.cpp b/indra/newview/llflexibleobject.cpp
index a9d7c749ab..5a28bf9277 100644
--- a/indra/newview/llflexibleobject.cpp
+++ b/indra/newview/llflexibleobject.cpp
@@ -357,6 +357,8 @@ void LLVolumeImplFlexible::doIdleUpdate()
F32 pixel_area = mVO->getPixelArea();
U32 update_period = (U32) (LLViewerCamera::getInstance()->getScreenPixelArea()*0.01f/(pixel_area*(sUpdateFactor+1.f)))+1;
+ // MAINT-1890 Clamp the update period to ensure that the update_period is no greater than 32 frames
+ update_period = llclamp(update_period, 0U, 32U);
if (visible)
{
@@ -428,6 +430,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;