summaryrefslogtreecommitdiff
path: root/indra/llcommon/llmemory.cpp
diff options
context:
space:
mode:
authorXiaohong Bao <bao@lindenlab.com>2011-01-26 17:03:30 -0700
committerXiaohong Bao <bao@lindenlab.com>2011-01-26 17:03:30 -0700
commit6531eed04e24239233f79624572219e88017f476 (patch)
treeb1ba1d38648046f2d2a42ae03ad84bdd55518b11 /indra/llcommon/llmemory.cpp
parent8f54dc2958e75587165623b0292940200fb49f59 (diff)
add "pause" function for SH-846: design and implement the debug code to locate memory leaking
Diffstat (limited to 'indra/llcommon/llmemory.cpp')
-rw-r--r--indra/llcommon/llmemory.cpp18
1 files changed, 13 insertions, 5 deletions
diff --git a/indra/llcommon/llmemory.cpp b/indra/llcommon/llmemory.cpp
index e4ece78d53..f340105f57 100644
--- a/indra/llcommon/llmemory.cpp
+++ b/indra/llcommon/llmemory.cpp
@@ -275,6 +275,7 @@ LLMemTracker::LLMemTracker()
mCurIndex = 0 ;
mCounter = 0 ;
mDrawnIndex = 0 ;
+ mPaused = FALSE ;
mMutexp = new LLMutex(NULL) ;
mStringBuffer = new char*[128] ;
@@ -315,19 +316,25 @@ void LLMemTracker::release()
//static
void LLMemTracker::track(const char* function, const int line)
{
- static const S32 MIN_ALLOCATION = 1024 ; //1KB
+ static const S32 MIN_ALLOCATION = 0 ; //1KB
+
+ if(mPaused)
+ {
+ return ;
+ }
U32 allocated_mem = LLMemory::getWorkingSetSize() ;
LLMutexLock lock(mMutexp) ;
- if(allocated_mem <= mLastAllocatedMem)
+ S32 delta_mem = allocated_mem - mLastAllocatedMem ;
+ mLastAllocatedMem = allocated_mem ;
+
+ if(delta_mem <= 0)
{
return ; //occupied memory does not grow
}
- S32 delta_mem = allocated_mem - mLastAllocatedMem ;
- mLastAllocatedMem = allocated_mem ;
if(delta_mem < MIN_ALLOCATION)
{
return ;
@@ -353,10 +360,11 @@ void LLMemTracker::track(const char* function, const int line)
//static
-void LLMemTracker::preDraw()
+void LLMemTracker::preDraw(BOOL pause)
{
mMutexp->lock() ;
+ mPaused = pause ;
mDrawnIndex = mCurIndex - 1;
mNumOfDrawn = 0 ;
}