diff -r 7fdc9a71d314 -r 8ad140f3dd41 memspy/Engine/Source/SysMemTracker/MemSpyEngineHelperSysMemTrackerEntryHeap.cpp --- a/memspy/Engine/Source/SysMemTracker/MemSpyEngineHelperSysMemTrackerEntryHeap.cpp Wed Sep 15 13:53:27 2010 +0300 +++ b/memspy/Engine/Source/SysMemTracker/MemSpyEngineHelperSysMemTrackerEntryHeap.cpp Wed Oct 13 16:17:58 2010 +0300 @@ -216,8 +216,15 @@ TBool CMemSpyEngineHelperSysMemTrackerEntryHeap::HaveFreeCellsChanged() const { - TBool changed = ( iCurrent.AsRHeap().Statistics().StatsFree().TypeCount() != iLast.AsRHeap().Statistics().StatsFree().TypeCount() ) || - ( iCurrent.AsRHeap().Statistics().StatsFree().TypeSize() != iLast.AsRHeap().Statistics().StatsFree().TypeSize() ); + TBool changed = + ( iCurrent.AsRHeap().ObjectData().iFree.next != iLast.AsRHeap().ObjectData().iFree.next ) || + ( iCurrent.AsRHeap().ObjectData().iFree.len != iLast.AsRHeap().ObjectData().iFree.len ); + // + if ( !changed ) + { + changed |= ( iCurrent.AsRHeap().Statistics().StatsFree().TypeCount() != iLast.AsRHeap().Statistics().StatsFree().TypeCount() ); + changed |= ( iCurrent.AsRHeap().Statistics().StatsFree().SlackSpaceCellSize() != iLast.AsRHeap().Statistics().StatsFree().SlackSpaceCellSize() ); + } // return changed; } @@ -289,7 +296,7 @@ void CMemSpyEngineHelperSysMemTrackerCycleChangeHeap::OutputHeaderL( CMemSpyEngineOutputSink& aSink, CMemSpyEngineHelperSysMemTrackerCycle& /*aCycle*/ ) { - _LIT( KHeaderHeap, "Type, Thread, Chunk, Handle, Heap Addr, Size, Min, Max, 1st Free Addr, 1st Free Len, Alloc Count, Alloc Space, Free Count, Free Space, Free Slack, F.Largest, A.Largest, Attribs"); + _LIT( KHeaderHeap, "Type, Thread, Chunk, Handle, Base Addr, Size, Min, Max, 1st Free Addr, 1st Free Len, Alloc Count, Alloc Space, Free Count, Free Space, Free Slack, F.Largest, A.Largest, Attribs"); aSink.OutputLineL( KHeaderHeap ); } @@ -308,6 +315,7 @@ TPtr pBuf(buf->Des()); const TMemSpyHeapMetaDataRHeap& metaData = iCurrent.AsRHeap().MetaData(); + const TMemSpyHeapObjectDataRHeap& objectData = iCurrent.AsRHeap().ObjectData(); const TMemSpyHeapStatisticsRHeap& stats = iCurrent.AsRHeap().Statistics(); // Strip any process & thread @@ -318,12 +326,12 @@ iThreadName, &pChunkName, metaData.ChunkHandle(), - /*objectData.Base(),*/ metaData.iAllocatorAddress, + objectData.Base(), metaData.ChunkSize(), - /*objectData.iMinLength,*/ metaData.iMinHeapSize, - /*objectData.iMaxLength,*/ metaData.iMaxHeapSize, - /*objectData.iFree.next,*/ NULL, //TODO - /*objectData.iFree.len,*/ 0, + objectData.iMinLength, + objectData.iMaxLength, + objectData.iFree.next, + objectData.iFree.len, stats.StatsAllocated().TypeCount(), stats.StatsAllocated().TypeSize(), stats.StatsFree().TypeCount(), @@ -363,22 +371,18 @@ { // Starts a data Stream aCycle.DataStreamBeginL( aSink, *iThreadName ); - - TInt err = KErrNone; if ( IsKernel() ) { - TRAP(err, engine.HelperHeap().OutputHeapDataKernelL( KMemSpyEngineSinkDoNotCreateOwnDataStream )); + engine.HelperHeap().OutputHeapDataKernelL( KMemSpyEngineSinkDoNotCreateOwnDataStream ); } else if ( thread ) { - TRAP(err, engine.HelperHeap().OutputHeapDataUserL( *thread, KMemSpyEngineSinkDoNotCreateOwnDataStream )); + engine.HelperHeap().OutputHeapDataUserL( *thread, KMemSpyEngineSinkDoNotCreateOwnDataStream ); } // End the stream (commit the file) aCycle.DataStreamEndL( aSink ); - - User::LeaveIfError(err); } }