221 for (TInt j = iCommandArray.Count()-1; j >= 0; --j) |
220 for (TInt j = iCommandArray.Count()-1; j >= 0; --j) |
222 { |
221 { |
223 MPbk2Command* arrayCmd = iCommandArray[j]; |
222 MPbk2Command* arrayCmd = iCommandArray[j]; |
224 if (idleDestCmd == arrayCmd) |
223 if (idleDestCmd == arrayCmd) |
225 { |
224 { |
|
225 // Remove from command array |
|
226 iCommandArray.Remove(j); |
226 iIdleDestructableCommands.Remove(i); |
227 iIdleDestructableCommands.Remove(i); |
227 |
|
228 // Try to get MPbk2ResourceRelease interface. |
|
229 TUid uid; |
|
230 uid.iUid = MPbk2ResourceReleaseUID; |
|
231 MPbk2ResourceRelease* release = static_cast<MPbk2ResourceRelease *>(idleDestCmd->CommandExtension(uid)); |
|
232 if (release) |
|
233 { |
|
234 // Call ReleaseResource before delete. |
|
235 release->ReleaseResource(); |
|
236 } |
|
237 |
|
238 // Remove from command array |
|
239 iCommandArray.Remove(j); |
|
240 |
|
241 delete idleDestCmd; |
228 delete idleDestCmd; |
242 idleDestCmd = NULL; |
229 idleDestCmd = NULL; |
243 |
|
244 break; |
|
245 } |
230 } |
246 } |
231 } |
247 } |
232 } |
248 } |
233 } |
249 |
234 |
250 |
235 |
251 // -------------------------------------------------------------------------- |
236 // -------------------------------------------------------------------------- |
252 // CPbk2CommandStore::DestroyAllCommands |
237 // CPbk2CommandStore::DestroyAllCommands |
253 // -------------------------------------------------------------------------- |
238 // -------------------------------------------------------------------------- |
254 // |
239 // |
255 EXPORT_C void CPbk2CommandStore::DestroyAllCommands() |
240 void CPbk2CommandStore::DestroyAllCommands() |
256 { |
241 { |
257 // Delete objects in idle commands array using CommandFinished |
242 // Delete objects in idle commands array using CommandFinished |
258 for (TInt i = 0; i < iCommandArray.Count(); ++i) |
243 for (TInt i = 0; i < iCommandArray.Count(); ++i) |
259 { |
244 { |
260 MPbk2Command* destCmd = iCommandArray[i]; |
245 MPbk2Command* destCmd = iCommandArray[i]; |