realtimenetprots/sipfw/ProfileAgent/AlrMonitor/src/sipalrmonitor.cpp
changeset 42 69df6ed78a6a
parent 37 0295359a7673
child 44 0dcb073356a5
equal deleted inserted replaced
37:0295359a7673 42:69df6ed78a6a
   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 // -----------------------------------------------------------------------------