diff -r 13d7c31c74e0 -r b183ec05bd8c syncmlfw/common/sosserver/src/NSmlTask.cpp --- a/syncmlfw/common/sosserver/src/NSmlTask.cpp Thu Aug 19 10:44:50 2010 +0300 +++ b/syncmlfw/common/sosserver/src/NSmlTask.cpp Tue Aug 31 16:04:06 2010 +0300 @@ -378,8 +378,7 @@ RReadStream filterStream = ctype->FilterReadStreamL(); CleanupClosePushL( filterStream ); RPointerArray* filterArray = new ( ELeave ) RPointerArray(); - CleanupRPtrArrayPushL(filterArray); - + CleanupStack::PushL( filterArray ); TInt count(0); TRAPD(error, count = filterStream.ReadInt32L() ); if ( error == KErrNone ) @@ -392,9 +391,11 @@ } else if ( prof->IntValue( EDSProfileProtocolVersion ) == ESmlVersion1_2 ) { - CleanupStack::PopAndDestroy(filterArray); + CleanupStack::Pop(); // filterArray; + filterArray->ResetAndDestroy(); + delete filterArray; filterArray = iSession.HostClient().SupportedServerFiltersL( iTaskUID, matchType, changeInfo, resultCode ); - CleanupRPtrArrayPushL(filterArray); + CleanupStack::PushL( filterArray ); } iSession.HostClient().CheckServerFiltersL( iTaskUID, *filterArray, changeInfo, resultCode ); @@ -434,7 +435,8 @@ CleanupStack::PopAndDestroy(agentLog); - CleanupStack::PopAndDestroy(filterArray); + filterArray->ResetAndDestroy(); + CleanupStack::PopAndDestroy(filterArray); CleanupStack::PopAndDestroy(&filterStream); } else