datacommsserver/esockserver/CoreProviders/src/coretiernotificationactivity.cpp
branchRCL_3
changeset 24 00c6709d25aa
parent 4 928ed51ddc43
child 25 9d7ce34704c8
--- a/datacommsserver/esockserver/CoreProviders/src/coretiernotificationactivity.cpp	Thu Jul 15 20:01:43 2010 +0300
+++ b/datacommsserver/esockserver/CoreProviders/src/coretiernotificationactivity.cpp	Thu Aug 19 11:05:47 2010 +0300
@@ -168,16 +168,16 @@
 	// set up a session with each collector
 	for (TInt sessionId=0 ; sessionId<aCollectors.Count() ; ++sessionId)
 		{
-		CDataCollectorSession* newCollector = CDataCollectorSession::NewL(aCollectors[sessionId], *this, sessionId );
-		CleanupStack::PushL(newCollector);
-		iCollectorSessions.AppendL(newCollector);
-		CleanupStack::Pop(newCollector);
-		
-		// now owned by the CDataCollectorSession in iCollectorSessions so don't want it to be in the cleanup path twice!
-		aCollectors[sessionId] = 0;
+		MDataCollector* collector = aCollectors[sessionId];
+		aCollectors[sessionId] = NULL;
+		CleanupStack::PushL(collector);
+		CDataCollectorSession* newCollectorSession = CDataCollectorSession::NewL(collector, *this, sessionId);
+		CleanupStack::Pop(collector);
+		CleanupStack::PushL(newCollectorSession);
+		iCollectorSessions.AppendL(newCollectorSession);
+		CleanupStack::Pop(newCollectorSession);
 		}
 
-
 	// Must run session creation and start loops separately in case the initial data fetch is synchronous.
 	// Reasoning:
 	//  when a full set of data for each collector is received, notification is only allowed if all