phonebookui/Phonebook2/Commands/src/CPbk2CommandStore.cpp
branchRCL_3
changeset 58 d4f567ce2e7c
parent 0 e686773b3f54
child 64 c1e8ba0c2b16
--- 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;
                 }
             }
         }