syncmlfw/syncmlnotifier/src/SyncMLPreSyncPluginInterface.cpp
branchRCL_3
changeset 14 504e41245867
parent 0 b497e44ab2fc
child 16 915074efc433
--- a/syncmlfw/syncmlnotifier/src/SyncMLPreSyncPluginInterface.cpp	Wed Mar 31 23:00:03 2010 +0300
+++ b/syncmlfw/syncmlnotifier/src/SyncMLPreSyncPluginInterface.cpp	Wed Apr 14 16:50:34 2010 +0300
@@ -17,6 +17,7 @@
 
 
 // INCLUDE FILES
+#include <nsmlconstants.h>
 #include "SyncMLPreSyncPluginInterface.h"
 #include "CPreSyncPlugin.h"
 
@@ -97,11 +98,14 @@
     CPreSyncPlugin* syncPlugin = NULL;
     CPreSyncPlugin* defaultSyncPlugin = NULL;
 
+	CleanupRImplInfoPtrArrayPushL( &infoArray );
+
     // Get list of all implementations
     TRAPD(error, ListAllImplementationsL( infoArray ));
     
     if (error != KErrNone)
         {
+		CleanupStack::PopAndDestroy( &infoArray );
         return NULL;
         }
 
@@ -137,18 +141,20 @@
 		}
     }
 
-    infoArray.ResetAndDestroy();
+    CleanupStack::PopAndDestroy( &infoArray );
 	if(bHandleSync == true)
 	{		
 		//delete defaultSyncPlugin;
 	    if(defaultSyncPlugin != NULL)
 	    {
-	    CleanupStack::PopAndDestroy(defaultSyncPlugin);
+	    delete defaultSyncPlugin;
 	    }
+	    CleanupStack::PushL(syncPlugin);
 		return syncPlugin;
 	}
 	else
-	{
+	{      
+        CleanupStack::PushL(defaultSyncPlugin);
 		return defaultSyncPlugin;
 	}    
  }
@@ -171,7 +177,6 @@
    // REComSession
     CPreSyncPlugin *preSyncPlugin= NULL;
     preSyncPlugin = CPreSyncPlugin::NewL(aImpUid);
-    CleanupStack::PushL(preSyncPlugin);
     return preSyncPlugin;
 /*
    TAny* implementation = REComSession::CreateImplementationL ( aImpUid,