realtimenetprots/sipfw/ProfileAgent/AlrMonitor/src/sipalrmonitor.cpp
branchRCL_3
changeset 49 0a1ad22c7bdc
parent 44 0dcb073356a5
child 56 2c7192069824
--- a/realtimenetprots/sipfw/ProfileAgent/AlrMonitor/src/sipalrmonitor.cpp	Tue Sep 14 22:01:18 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/AlrMonitor/src/sipalrmonitor.cpp	Wed Sep 15 12:36:02 2010 +0300
@@ -188,16 +188,20 @@
 //
 void CSipAlrMonitor::FreeResources ( MSipAlrObserver& aObserver )
     {
+    CSipAlrSnapMonitor* monitor= 0;
 	for ( TInt i = iSnapMonitors.Count()-1; i >= 0; i-- )
 		{
 		TBool last = iSnapMonitors[i]->DetachObserver ( aObserver );
 		if ( last ) 
 			{
-			delete iSnapMonitors[i];
-			iSnapMonitors.Remove ( i );
+            monitor = iSnapMonitors[i];
+			iSnapMonitors.Remove(i);
+			delete monitor;
+			monitor = NULL;
 			PROFILE_DEBUG1( "CSipAlrMonitor::FreeResources monitor deleted" )
 			}
 		}
+	iSnapMonitors.Compress();
     }
 
 // -----------------------------------------------------------------------------