--- a/memspy/Engine/Source/Helpers/MemSpyEngineHelperActiveObject.cpp Wed Sep 15 00:19:18 2010 +0300
+++ b/memspy/Engine/Source/Helpers/MemSpyEngineHelperActiveObject.cpp Wed Sep 15 13:53:27 2010 +0300
@@ -68,7 +68,7 @@
EXPORT_C CMemSpyEngineActiveObjectArray* CMemSpyEngineHelperActiveObject::ActiveObjectListL( const CMemSpyThread& aThread )
{
- //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListLC() - START");
+ //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListL() - START");
CMemSpyEngineActiveObjectArray* array = CMemSpyEngineActiveObjectArray::NewLC();
// Is the thread's process already suspended? If not, we need to do it now.
@@ -76,7 +76,7 @@
const TBool isSuspended = ( iEngine.SuspendedProcessId() == parentProcessId );
if ( !isSuspended )
{
- //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListLC() - suspending process");
+ //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListL() - suspending process");
iEngine.ProcessSuspendLC( parentProcessId );
}
@@ -84,7 +84,7 @@
CleanupStack::PushL( TCleanupItem( CleanupHeapWalk, this ) );
// Get the thread info
- //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListLC() - getting thread info...");
+ //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListL() - getting thread info...");
TMemSpyDriverThreadInfo threadInfo;
TInt err = iEngine.Driver().GetThreadInfo( aThread.Id(), threadInfo );
User::LeaveIfError( err );
@@ -95,15 +95,15 @@
#endif
// Get the heap info - we need this for verification purposes
- //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListLC() - getting heap info...");
+ //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListL() - getting heap info...");
err = iEngine.Driver().GetHeapInfoUser( iHeapInfo, aThread.Id() );
User::LeaveIfError( err );
- //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListLC() - allocated cell header length is: %d", iHeapInfo.iHeapCellHeaderLengthAllocated);
+ //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListL() - allocated cell header length is: %d", iHeapInfo.iHeapCellHeaderLengthAllocated);
// Do we have a ROM-based scheduler pointer?
- if ( scheduler != NULL && iHeapInfo.Type() == TMemSpyHeapInfo::ETypeRHeap )
+ if ( scheduler != NULL && iHeapInfo.Type() != TMemSpyHeapInfo::ETypeUnknown )
{
- //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListLC() - scheduler: 0x%08x", scheduler);
+ //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListL() - scheduler: 0x%08x", scheduler);
// Let's try to get the scheduler's heap cell...
HBufC8* data = SchedulerHeapCellDataLC( scheduler, aThread.Id() );
@@ -114,14 +114,14 @@
}
// Tidy up
- CleanupStack::PopAndDestroy(); // heap walk cleanup item
+ CleanupStack::PopAndDestroy(this); // heap walk cleanup item
if ( !isSuspended )
{
- iEngine.ProcessResume();
+ CleanupStack::PopAndDestroy(); // will resume the process we suspended earlier
}
//
CleanupStack::Pop( array );
- //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListLC() - END");
+ //RDebug::Printf("CMemSpyEngineHelperActiveObject::ActiveObjectListL() - END");
return array;
}
@@ -149,9 +149,9 @@
//RDebug::Printf("CMemSpyEngineHelperActiveObject::SchedulerHeapCellDataLC() - err: %d, cellLength: %d, cellAllocationNumber: %d, cellType: %d", err, cellLength, cellAllocationNumber, cellType);
User::LeaveIfError( err );
- if ( cellType == EMemSpyDriverGoodAllocatedCell )
+ if (cellType & EMemSpyDriverAllocatedCellMask)
{
- const TInt payloadLength = cellLength - iHeapInfo.AsRHeap().MetaData().HeaderSizeAllocated();
+ const TInt payloadLength = cellLength;
HBufC8* data = HBufC8::NewLC( payloadLength );
TPtr8 pData( data->Des() );
//
@@ -281,9 +281,9 @@
//RDebug::Printf("CMemSpyEngineHelperActiveObject::ReadActiveObjectDataL() - err: %d, cellLength: %d, cellAllocationNumber: %d, cellType: %d", err, cellLength, cellAllocationNumber, cellType);
User::LeaveIfError( err );
- if ( cellType == EMemSpyDriverGoodAllocatedCell )
+ if (cellType & EMemSpyDriverAllocatedCellMask)
{
- const TInt payloadLength = cellLength - iHeapInfo.AsRHeap().MetaData().HeaderSizeAllocated();
+ const TInt payloadLength = cellLength;
//RDebug::Printf("CMemSpyEngineHelperActiveObject::ReadActiveObjectDataL() - payloadLength: %d", payloadLength);
// const TInt payloadLength = Max( 512, cellLength - iHeapInfo.iHeapCellHeaderLengthAllocated ); // Prevent negative payload lengths?