--- 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