--- a/phonebookui/Phonebook2/Commands/src/CPbk2CommandStore.cpp Thu Jul 15 18:22:55 2010 +0300
+++ b/phonebookui/Phonebook2/Commands/src/CPbk2CommandStore.cpp Thu Aug 19 09:41:07 2010 +0300
@@ -18,6 +18,7 @@
// INCLUDE FILES
#include "CPbk2CommandStore.h"
+#include "MPbk2CommandResourceRelease.h"
// Phonebook 2
#include <MPbk2Command.h>
@@ -222,11 +223,25 @@
MPbk2Command* arrayCmd = iCommandArray[j];
if (idleDestCmd == arrayCmd)
{
+ iIdleDestructableCommands.Remove(i);
+
+ // Try to get MPbk2ResourceRelease interface.
+ TUid uid;
+ uid.iUid = MPbk2ResourceReleaseUID;
+ MPbk2ResourceRelease* release = static_cast<MPbk2ResourceRelease *>(idleDestCmd->CommandExtension(uid));
+ if (release)
+ {
+ // Call ReleaseResource before delete.
+ release->ReleaseResource();
+ }
+
// Remove from command array
- iCommandArray.Remove(j);
- iIdleDestructableCommands.Remove(i);
+ iCommandArray.Remove(j);
+
delete idleDestCmd;
idleDestCmd = NULL;
+
+ break;
}
}
}