diff -r 6295dc2169f3 -r 8486d82aef45 connectivitylayer/isce/isirouter_dll/src/isimsgqueue.cpp --- a/connectivitylayer/isce/isirouter_dll/src/isimsgqueue.cpp Wed Apr 21 14:29:55 2010 +0300 +++ b/connectivitylayer/isce/isirouter_dll/src/isimsgqueue.cpp Tue Oct 19 13:16:20 2010 +0300 @@ -66,6 +66,7 @@ C_TRACE( ( _T( "DISIMsgQueue::~DISIMsgQueue 0x%x %d>" ), this, iShCount ) ); ASSERT_RESET_ALWAYS( iShCount == 0, ( EISIMsgQueueNotEmpty | EDISIMsgQueueTraceId << KClassIdentifierShift ) ); // NOTE! This does not deallocate the blocks from the allocated memory just the pointers! + // Take each individual pointer from the array and free delete them. for( TInt i( 0 ); i < iSize; ++i ) { TDes8* temp = iShRingBuffer[ i ]; @@ -79,8 +80,9 @@ if( iShRingBuffer ) { C_TRACE( ( _T( "DISIMsgQueue::~DISIMsgQueue iShRingBuffer 0x%x iShRingBuffer[0] 0x%x" ), iShRingBuffer, iShRingBuffer[0] ) ); + // Delete the space reserved for the array. Marks it as non-used do not set to NULL. delete [] iShRingBuffer; - iShRingBuffer = NULL; +// iShRingBuffer = NULL; } iSize = 0;