From 6036ee9c421154a83a306bc16533e47f9494fd32 Mon Sep 17 00:00:00 2001
From: William Todd Stinson <stinson@lindenlab.com>
Date: Fri, 16 Nov 2012 17:26:01 -0800
Subject: [PATCH] MAINT-1890 FIX Removing previous hacky fix for this issue. 
 The better solution is to clamp the update_period to a reasonable number of
 frames (32).

---
 indra/newview/llflexibleobject.cpp | 15 ++-------------
 1 file changed, 2 insertions(+), 13 deletions(-)

diff --git a/indra/newview/llflexibleobject.cpp b/indra/newview/llflexibleobject.cpp
index f5bf900d0d..28d195d5e9 100644
--- a/indra/newview/llflexibleobject.cpp
+++ b/indra/newview/llflexibleobject.cpp
@@ -96,18 +96,6 @@ LLVolumeImplFlexible::~LLVolumeImplFlexible()
 //static
 void LLVolumeImplFlexible::updateClass()
 {
-	// XXX stinson 11/13/2012 : This hack removes the optimization for limiting the number of flexi-prims
-	// updated.  With the optimization, flexi-prims attached to the users avatar were not being
-	// animated correctly immediately following teleport.  With the optimization removed, the bug went away.
-#define XXX_STINSON_MAINT_1890_HACK_FIX 1
-#if XXX_STINSON_MAINT_1890_HACK_FIX
-	for (std::vector<LLVolumeImplFlexible*>::iterator iter = sInstanceList.begin();
-		iter != sInstanceList.end();
-		++iter)
-	{
-		(*iter)->doIdleUpdate();
-	}
-#else // XXX_STINSON_MAINT_1890_HACK_FIX
 	std::vector<S32>::iterator delay_iter = sUpdateDelay.begin();
 
 	for (std::vector<LLVolumeImplFlexible*>::iterator iter = sInstanceList.begin();
@@ -121,7 +109,6 @@ void LLVolumeImplFlexible::updateClass()
 		}
 		++delay_iter;
 	}
-#endif // XXX_STINSON_MAINT_1890_HACK_FIX
 }
 
 LLVector3 LLVolumeImplFlexible::getFramePosition() const
@@ -373,6 +360,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)
 				{
-- 
GitLab