diff -r ccab7f1f8266 -r 67c6ff54ec25 memspy/Engine/Source/Helpers/MemSpyEngineHelperHeap.cpp --- a/memspy/Engine/Source/Helpers/MemSpyEngineHelperHeap.cpp Mon May 03 13:58:41 2010 +0300 +++ b/memspy/Engine/Source/Helpers/MemSpyEngineHelperHeap.cpp Fri May 14 17:25:03 2010 +0300 @@ -899,6 +899,55 @@ } +//cigasto: not formatted - raw heap info +EXPORT_C TMemSpyHeapData CMemSpyEngineHelperHeap::NewHeapRawInfo( const TMemSpyHeapInfo& aInfo ) + { + TMemSpyHeapData list; + + // Heap type + if ( aInfo.Type() == TMemSpyHeapInfo::ETypeUnknown ) + { + _LIT( KItem0_Type_Unknown, "Unknown" ); + list.iType.Append( KItem0_Type_Unknown ); + } + else if ( aInfo.Type() == TMemSpyHeapInfo::ETypeRHeap ) + { + const TMemSpyHeapInfoRHeap& rHeap = aInfo.AsRHeap(); + const TMemSpyHeapMetaDataRHeap& metaData = rHeap.MetaData(); + const TMemSpyHeapObjectDataRHeap& objectData = rHeap.ObjectData(); + const TMemSpyHeapStatisticsRHeap& statistics = rHeap.Statistics(); + + _LIT( KItem0_Type_RHeap, "RHeap" ); + list.iType.Append( KItem0_Type_RHeap ); + + // Heap size is the size of the heap minus the size of the embedded (in-place) RHeap. + list.iSize = objectData.Size(); + list.iBaseAddress = (TUint) objectData.Base(); + list.iShared = metaData.IsSharedHeap(); + list.iChunkSize = metaData.ChunkSize(); + list.iAllocationsCount = statistics.StatsAllocated().TypeCount(); + list.iFreeCount = statistics.StatsFree().TypeCount(); + list.iBiggestAllocation = statistics.StatsAllocated().LargestCellSize(); + list.iBiggestFree = statistics.StatsFree().LargestCellSize(); + list.iTotalAllocations = statistics.StatsAllocated().TypeSize(); + list.iTotalFree = statistics.StatsFree().TypeSize(); + list.iSlackFreeSpace = statistics.StatsFree().SlackSpaceCellSize(); + list.iFragmentation = statistics.StatsFree().TypeSize() - statistics.StatsFree().SlackSpaceCellSize(); //to calculate percentage value use iSize as 100% value + list.iHeaderSizeA = metaData.HeaderSizeAllocated(); + list.iHeaderSizeF = metaData.HeaderSizeFree(); + TInt allocOverhead = metaData.HeaderSizeAllocated() * statistics.StatsAllocated().TypeCount(); + list.iAllocationOverhead = allocOverhead; + TInt freeOverhead = metaData.HeaderSizeFree() * statistics.StatsFree().TypeCount(); + list.iFreeOverhead = freeOverhead; + list.iTotalOverhead = freeOverhead + allocOverhead; + list.iOverhead = freeOverhead + allocOverhead; //to calculate percentage value use iSize as 100% value + list.iMinLength = objectData.iMinLength; + list.iMaxLength = objectData.iMaxLength; + list.iDebugAllocatorLibrary = metaData.IsDebugAllocator(); + } + + return list; + }