diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/collectionframework/collectionengine/src/mpxcollectioncache.cpp --- a/mpx/collectionframework/collectionengine/src/mpxcollectioncache.cpp Thu Aug 19 10:24:28 2010 +0300 +++ b/mpx/collectionframework/collectionengine/src/mpxcollectioncache.cpp Tue Aug 31 15:41:40 2010 +0300 @@ -28,6 +28,7 @@ #include #include #include "mpxcollectioncache.h" +#include // CONSTANTS const TInt KMPXRootNodeId = 0; @@ -589,6 +590,7 @@ void CMPXCollectionCacheNode::HandleChangeL( TMPXItemId aChangeItemId, RPointerArray& aArray ) { + CleanupResetAndDestroyPushL(aArray); // This node is affected // All child nodes are invalid! // @@ -647,6 +649,7 @@ } // for } // if iResults } // if no children + CleanupStack::Pop(&aArray); } // ---------------------------------------------------------------------------- @@ -827,6 +830,7 @@ // O(n^2) complexity here is OK, Merging keeps the number of items // very small. Less than 3 items are alive at a time // + CleanupClosePushL( aArray ); RArray newArray; CleanupClosePushL( newArray ); @@ -869,6 +873,7 @@ MPX_DEBUG3("Order: %i %i", newArray[i].iOffset, newArray[i].iSize ); } CleanupStack::PopAndDestroy( &newArray ); + CleanupStack::Pop(); } #ifdef _DEBUG