--- 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<CSyncMLFilter>* filterArray = new ( ELeave ) RPointerArray<CSyncMLFilter>();
- 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