messagingappbase/mcesettings/src/MceSettingsEmailSel.cpp
branchRCL_3
changeset 16 e00582ce7ecd
parent 15 52d61119153d
--- a/messagingappbase/mcesettings/src/MceSettingsEmailSel.cpp	Wed Apr 14 15:53:21 2010 +0300
+++ b/messagingappbase/mcesettings/src/MceSettingsEmailSel.cpp	Tue Apr 27 16:33:37 2010 +0300
@@ -106,6 +106,9 @@
     {
       iEmailFramework = ETrue;
     } 
+    iCmaillistItems = NULL;
+    iCmailBoxes = NULL;
+    iCmaillistItemUids = NULL;
     }
     
 // ---------------------------------------------------------
@@ -128,12 +131,30 @@
     if( iMtmStore )
     	{
     	delete iMtmStore;
+    	iMtmStore = NULL;
     	}     
     if( iMsvSessionPtr )
     	{
     	delete iMsvSessionPtr;
+    	iMsvSessionPtr = NULL;
     	}  	  
     UnLoadResource();    	 	
+    if(iCmaillistItemUids)
+        {
+        delete iCmaillistItemUids;
+        iCmaillistItemUids  = NULL;
+        }
+    if(iCmailBoxes)
+        {
+        iCmailBoxes->Close();
+        delete iCmailBoxes;
+        iCmailBoxes  = NULL;
+        }
+    if(iCmaillistItems)
+        {
+        delete iCmaillistItems;
+        iCmaillistItems = NULL;
+        }
     }    
 
 // ---------------------------------------------------------
@@ -364,10 +385,16 @@
             aMtmType = entry.iMtm;
             }
         }
-    delete iCmaillistItemUids;
-    iCmaillistItemUids  = NULL;
-    delete iCmaillistItems;
-    iCmaillistItems = NULL;;
+    if(iCmaillistItemUids)
+        {
+    	delete iCmaillistItemUids;
+        iCmaillistItemUids  = NULL;
+        }
+    if(iCmaillistItems)
+        {
+   		delete iCmaillistItems;
+        iCmaillistItems = NULL;
+        }
     CleanupStack::PopAndDestroy( aListItemUids );
     CleanupStack::PopAndDestroy( aListItems );
     if(cancel)
@@ -621,12 +648,23 @@
     atimeItems->Sort(key);
     TUid cmailEntryUid;
     
+    if(iCmaillistItems)
+        {
+        delete iCmaillistItems;
+        iCmaillistItems = NULL;
+        }   
     //Array to get the list of Cmail Boxes
     iCmaillistItems = new (ELeave) CDesCArrayFlat(
                                 KArrayGranularity );
     
-    iCmaillistItemUids = new ( ELeave ) CArrayFixFlat<TUid>( KArrayGranularity );
-    
+    if(iCmaillistItemUids)
+        {
+        delete iCmaillistItemUids;
+        iCmaillistItemUids = NULL;
+        }
+    iCmaillistItemUids = new ( ELeave ) 
+            CArrayFixFlat<TUid>( KArrayGranularity );
+   
     // Go one by one in Hash table
     if(atimeItems->Count() > 0)
         {    
@@ -659,6 +697,12 @@
     if(iEmailFramework)
         {
         //Added for Cmail Details
+        if(iCmailBoxes)
+           {
+           iCmailBoxes->Close();
+           delete iCmailBoxes;
+           iCmailBoxes  = NULL;
+           }
         iCmailBoxes =
               new( ELeave )RHashMap< TInt64, TInt >
                       (&TPtrC8Hash , &TInt64Ident);    
@@ -754,8 +798,12 @@
           AppendCmailBoxesL(timeItems, aEntry);
           CleanupStack::PopAndDestroy( cmaillist );
           CleanupStack::PopAndDestroy( timeItems );
-          delete iCmailBoxes;
-          iCmailBoxes = NULL;
+          if(iCmailBoxes)
+              {
+              iCmailBoxes->Close();
+              delete iCmailBoxes;
+              iCmailBoxes = NULL;
+              }
           }
       }