harvester/client/src/harvesterrequestqueue.cpp
changeset 2 b73a2e62868f
parent 1 acef663c1218
child 7 3cebc1a84278
equal deleted inserted replaced
1:acef663c1218 2:b73a2e62868f
   123 
   123 
   124     if ( status >= KErrNone && !iShutdown )
   124     if ( status >= KErrNone && !iShutdown )
   125         {
   125         {
   126         CHarvesterRequestActive* selectedRequest = NULL;
   126         CHarvesterRequestActive* selectedRequest = NULL;
   127     
   127     
   128         for ( TInt i = 0; i < iRequests.Count(); i++ )
   128         TInt endIndex( iRequests.Count() );
       
   129         for ( TInt i = 0; i < endIndex; i++ )
   129             {
   130             {
   130             CHarvesterRequestActive* request = iRequests[i];
   131             CHarvesterRequestActive* request = iRequests[i];
   131         
   132         
   132             // remove completed tasks    
   133             // remove completed tasks    
   133             if ( !request || (request->RequestCompleted() && !request->IsActive()) )
   134             if ( !request || (request->RequestCompleted() && !request->IsActive()) )
   137                 request = NULL;
   138                 request = NULL;
   138                 iRequests.Remove( i );
   139                 iRequests.Remove( i );
   139             
   140             
   140                 // correct the index so that no tasks are skipped
   141                 // correct the index so that no tasks are skipped
   141                 i--;
   142                 i--;
   142                 if(i <= -1)
   143                 endIndex--;
   143                     {
       
   144                     i = -1;
       
   145                     }
       
   146             
   144             
   147                 WRITELOG( "CHarvesterRequestQueue::RunL() - removing completed request");
   145                 WRITELOG( "CHarvesterRequestQueue::RunL() - removing completed request");
   148                 }
   146                 }
   149             // select priorised task
   147             // select priorised task
   150             else
   148             else
   231         {
   229         {
   232         CHarvesterRequestActive* request = iRequests[i];
   230         CHarvesterRequestActive* request = iRequests[i];
   233         if( request )
   231         if( request )
   234             {
   232             {
   235             request->Cancel();
   233             request->Cancel();
       
   234             request->iRequestQueue = NULL;
   236             }
   235             }
   237         }
   236         }
   238     }
   237     }
   239 
   238 
   240 
   239