equal
deleted
inserted
replaced
16 */ |
16 */ |
17 |
17 |
18 |
18 |
19 // INCLUDE FILES |
19 // INCLUDE FILES |
20 #include "CPbk2CommandStore.h" |
20 #include "CPbk2CommandStore.h" |
|
21 #include "MPbk2CommandResourceRelease.h" |
21 |
22 |
22 // Phonebook 2 |
23 // Phonebook 2 |
23 #include <MPbk2Command.h> |
24 #include <MPbk2Command.h> |
24 #include <MPbk2MenuCommandObserver.h> |
25 #include <MPbk2MenuCommandObserver.h> |
25 |
26 |
220 for (TInt j = iCommandArray.Count()-1; j >= 0; --j) |
221 for (TInt j = iCommandArray.Count()-1; j >= 0; --j) |
221 { |
222 { |
222 MPbk2Command* arrayCmd = iCommandArray[j]; |
223 MPbk2Command* arrayCmd = iCommandArray[j]; |
223 if (idleDestCmd == arrayCmd) |
224 if (idleDestCmd == arrayCmd) |
224 { |
225 { |
|
226 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 |
225 // Remove from command array |
238 // Remove from command array |
226 iCommandArray.Remove(j); |
239 iCommandArray.Remove(j); |
227 iIdleDestructableCommands.Remove(i); |
240 |
228 delete idleDestCmd; |
241 delete idleDestCmd; |
229 idleDestCmd = NULL; |
242 idleDestCmd = NULL; |
|
243 |
|
244 break; |
230 } |
245 } |
231 } |
246 } |
232 } |
247 } |
233 } |
248 } |
234 |
249 |