From fa04683aba24c1a5dc9dabd77b8c5fabef492974 Mon Sep 17 00:00:00 2001
From: Xiaohong Bao <bao@lindenlab.com>
Date: Wed, 26 Oct 2011 11:10:18 -0600
Subject: [PATCH] fix for SH-2573: Flaw in Purging Texture Cache when it
 Exceeds Limit

---
 indra/newview/lltexturecache.cpp | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/indra/newview/lltexturecache.cpp b/indra/newview/lltexturecache.cpp
index 87b6304f9dd..d9da9eb4763 100644
--- a/indra/newview/lltexturecache.cpp
+++ b/indra/newview/lltexturecache.cpp
@@ -1633,8 +1633,8 @@ void LLTextureCache::purgeTextures(bool validate)
 		{
 			purge_count++;
 	 		LL_DEBUGS("TextureCache") << "PURGING: " << filename << LL_ENDL;
-			removeEntry(idx, entries[idx], filename) ;
 			cache_size -= entries[idx].mBodySize;
+			removeEntry(idx, entries[idx], filename) ;			
 		}
 	}
 
@@ -1871,13 +1871,12 @@ void LLTextureCache::removeEntry(S32 idx, Entry& entry, std::string& filename)
 			  file_maybe_exists = false;
 		  }
 		}
+		mTexturesSizeTotal -= entry.mBodySize;
 
 		entry.mImageSize = -1;
 		entry.mBodySize = 0;
 		mHeaderIDMap.erase(entry.mID);
-		mTexturesSizeMap.erase(entry.mID);
-
-		mTexturesSizeTotal -= entry.mBodySize;
+		mTexturesSizeMap.erase(entry.mID);		
 		mFreeList.insert(idx);	
 	}
 
-- 
GitLab