From b667d20e00e4ea5f1d5a619d2868b502583deb43 Mon Sep 17 00:00:00 2001
From: Richard Linden <none@none>
Date: Fri, 23 Aug 2013 15:34:41 -0700
Subject: [PATCH] fixed issue with poor framerate after clearing cache

---
 indra/llcommon/llunit.h       | 16 ++++++++++------
 indra/newview/llappviewer.cpp |  2 +-
 2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/indra/llcommon/llunit.h b/indra/llcommon/llunit.h
index bfc011bb55e..de9cee33fd8 100644
--- a/indra/llcommon/llunit.h
+++ b/indra/llcommon/llunit.h
@@ -601,9 +601,6 @@ struct LLUnitLinearOps
 		mDivisor(1)
 	{}
 
-	T mValue;
-	T mDivisor;
-
 	template<typename OTHER_T>
 	self_t operator * (OTHER_T other)
 	{
@@ -620,6 +617,7 @@ struct LLUnitLinearOps
 	template<typename OTHER_T>
 	self_t operator + (OTHER_T other)
 	{
+		mValue /= mDivisor;
 		mValue += other;
 		return *this;
 	}
@@ -627,9 +625,13 @@ struct LLUnitLinearOps
 	template<typename OTHER_T>
 	self_t operator - (OTHER_T other)
 	{
+		mValue /= mDivisor;
 		mValue -= other;
 		return *this;
 	}
+
+	T mValue;
+	T mDivisor;
 };
 
 template<typename T>
@@ -642,9 +644,6 @@ struct LLUnitInverseLinearOps
 		mDivisor(1)
 	{}
 
-	T mValue;
-	T mDivisor;
-
 	template<typename OTHER_T>
 	self_t operator * (OTHER_T other)
 	{
@@ -662,6 +661,7 @@ struct LLUnitInverseLinearOps
 	template<typename OTHER_T>
 	self_t operator + (OTHER_T other)
 	{
+		mValue /= mDivisor;
 		mValue -= other;
 		return *this;
 	}
@@ -669,9 +669,13 @@ struct LLUnitInverseLinearOps
 	template<typename OTHER_T>
 	self_t operator - (OTHER_T other)
 	{
+		mValue /= mDivisor;
 		mValue += other;
 		return *this;
 	}
+
+	T mValue;
+	T mDivisor;
 };
 
 #define LL_DECLARE_BASE_UNIT(base_unit_name, unit_label)                                             \
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index f506765da3e..0f155b8ad71 100755
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -1463,7 +1463,7 @@ bool LLAppViewer::mainLoop()
 					ms_sleep(500);
 				}
 
-				const F64 max_idle_time = llmin(.005f*10.f*(F32MillisecondsImplicit)gFrameTimeSeconds, F32MillisecondsImplicit(5)); // 5 ms a second
+				const F64Milliseconds max_idle_time = llmin(.005f*10.f*(F32Milliseconds)gFrameTimeSeconds, F32Milliseconds(5)); // 5 ms a second
 				idleTimer.reset();
 				S32 total_work_pending = 0;
 				S32 total_io_pending = 0;	
-- 
GitLab