realtimenetprots/sipfw/ProfileAgent/AlrMonitor/src/sipalrmonitor.cpp
branchRCL_3
changeset 20 0dcb073356a5
parent 19 b5e99d8877c7
equal deleted inserted replaced
19:b5e99d8877c7 20:0dcb073356a5
   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;
       
   192 	for ( TInt i = iSnapMonitors.Count()-1; i >= 0; i-- )
   191 	for ( TInt i = iSnapMonitors.Count()-1; i >= 0; i-- )
   193 		{
   192 		{
   194 		TBool last = iSnapMonitors[i]->DetachObserver ( aObserver );
   193 		TBool last = iSnapMonitors[i]->DetachObserver ( aObserver );
   195 		if ( last ) 
   194 		if ( last ) 
   196 			{
   195 			{
   197             monitor = iSnapMonitors[i];
   196 			delete iSnapMonitors[i];
   198 			iSnapMonitors.Remove(i);
   197 			iSnapMonitors.Remove ( i );
   199 			delete monitor;
       
   200 			monitor = NULL;
       
   201 			PROFILE_DEBUG1( "CSipAlrMonitor::FreeResources monitor deleted" )
   198 			PROFILE_DEBUG1( "CSipAlrMonitor::FreeResources monitor deleted" )
   202 			}
   199 			}
   203 		}
   200 		}
   204 	iSnapMonitors.Compress();
       
   205     }
   201     }
   206 
   202 
   207 // -----------------------------------------------------------------------------
   203 // -----------------------------------------------------------------------------
   208 // CSipAlrMonitor::FindSnapMonitor
   204 // CSipAlrMonitor::FindSnapMonitor
   209 // -----------------------------------------------------------------------------
   205 // -----------------------------------------------------------------------------