--- a/clfwrapper/ClientSrc/CCLFServerProxy.cpp Fri Feb 19 23:14:48 2010 +0200
+++ b/clfwrapper/ClientSrc/CCLFServerProxy.cpp Fri Mar 12 15:44:28 2010 +0200
@@ -842,9 +842,8 @@
{
CUpdateItemsHandler* handler = CUpdateIDsHandler::NewL( aItemIDArray );
- CleanupStack::PushL( handler );
+ // Ownership tranferred
StartHandlingL( handler );
- CleanupStack::Pop( handler );
return KErrNone;
}
@@ -879,9 +878,8 @@
return KErrNone;
}
- CleanupStack::PushL( handler );
+ // Ownership tranferred
StartHandlingL( handler );
- CleanupStack::Pop( handler );
}
CleanupStack::PopAndDestroy( uriArray );
@@ -896,9 +894,8 @@
{
CUpdateItemsHandler* handler = CUpdateFoldersHandler::NewL( iMdESession,
*iUriArray, this, this, iFs, iHC, iExtensionArray );
- CleanupStack::PushL( handler );
+ // Ownership tranferred
StartHandlingL( handler );
- CleanupStack::Pop( handler );
return KErrNone;
}
@@ -1002,6 +999,7 @@
{
if ( aHandler )
{
+ CleanupStack::PushL( aHandler );
// Notify pending active objects about the event.
NotifyUpdateEvent( ECLFProcessStartEvent );
@@ -1012,16 +1010,17 @@
{
// Remove aHandler, because it is in clean up stack.
iUpdateItemsHandlerArray.Remove( iUpdateItemsHandlerArray.Count() - 1 );
+ CleanupStack::PopAndDestroy( aHandler );
User::LeaveIfError( err );
}
if ( aHandler->AllDone() )
{
- delete aHandler;
- aHandler = NULL;
+ CleanupStack::PopAndDestroy( aHandler );
iUpdateItemsHandlerArray.Remove( iUpdateItemsHandlerArray.Count() - 1 );
}
else
{
+ CleanupStack::Pop( aHandler );
aHandler->StartScheduler();
}
}