equal
deleted
inserted
replaced
194 MPX_DEBUG1("CMPXPlaybackServer::RemoveClient found client"); |
194 MPX_DEBUG1("CMPXPlaybackServer::RemoveClient found client"); |
195 cl->RemoveClient(index); |
195 cl->RemoveClient(index); |
196 if (cl->ClientCount()==0) |
196 if (cl->ClientCount()==0) |
197 { |
197 { |
198 MPX_DEBUG1("CMPXPlaybackServer::RemoveClient delete a player"); |
198 MPX_DEBUG1("CMPXPlaybackServer::RemoveClient delete a player"); |
|
199 CMPXPlaybackEngine* enginePtr = p; |
199 delete p; |
200 delete p; |
200 iPlayers.Remove(i); |
201 //Due to callbacks in PlaybackServer we have to remove engine from the iPlayers array after deleting. |
|
202 //enginePtr is a invalid pointer as p is already deleted |
|
203 //Find the index of deleted engine using its address |
|
204 TInt engineIndex = iPlayers.Find(enginePtr); |
|
205 if ( engineIndex != KErrNotFound ) |
|
206 { |
|
207 iPlayers.Remove(engineIndex); |
|
208 } |
201 } |
209 } |
202 break; |
210 break; |
203 } |
211 } |
204 } |
212 } |
205 iClients--; |
213 iClients--; |