realtimenetprots/sipfw/ProfileAgent/AlrMonitor/src/sipalrmonitor.cpp
branchRCL_3
changeset 49 0a1ad22c7bdc
parent 44 0dcb073356a5
child 56 2c7192069824
equal deleted inserted replaced
46:346e49b9ce14 49:0a1ad22c7bdc
   186 // CSipAlrMonitor::FreeResources
   186 // CSipAlrMonitor::FreeResources
   187 // -----------------------------------------------------------------------------
   187 // -----------------------------------------------------------------------------
   188 //
   188 //
   189 void CSipAlrMonitor::FreeResources ( MSipAlrObserver& aObserver )
   189 void CSipAlrMonitor::FreeResources ( MSipAlrObserver& aObserver )
   190     {
   190     {
       
   191     CSipAlrSnapMonitor* monitor= 0;
   191 	for ( TInt i = iSnapMonitors.Count()-1; i >= 0; i-- )
   192 	for ( TInt i = iSnapMonitors.Count()-1; i >= 0; i-- )
   192 		{
   193 		{
   193 		TBool last = iSnapMonitors[i]->DetachObserver ( aObserver );
   194 		TBool last = iSnapMonitors[i]->DetachObserver ( aObserver );
   194 		if ( last ) 
   195 		if ( last ) 
   195 			{
   196 			{
   196 			delete iSnapMonitors[i];
   197             monitor = iSnapMonitors[i];
   197 			iSnapMonitors.Remove ( i );
   198 			iSnapMonitors.Remove(i);
       
   199 			delete monitor;
       
   200 			monitor = NULL;
   198 			PROFILE_DEBUG1( "CSipAlrMonitor::FreeResources monitor deleted" )
   201 			PROFILE_DEBUG1( "CSipAlrMonitor::FreeResources monitor deleted" )
   199 			}
   202 			}
   200 		}
   203 		}
       
   204 	iSnapMonitors.Compress();
   201     }
   205     }
   202 
   206 
   203 // -----------------------------------------------------------------------------
   207 // -----------------------------------------------------------------------------
   204 // CSipAlrMonitor::FindSnapMonitor
   208 // CSipAlrMonitor::FindSnapMonitor
   205 // -----------------------------------------------------------------------------
   209 // -----------------------------------------------------------------------------