emailservices/emailframework/commonlib/src/CFSMailBox.cpp
branchRCL_3
changeset 29 6b8f3b30d0ec
parent 26 67369d1b217f
child 52 efd4f1afd43e
--- a/emailservices/emailframework/commonlib/src/CFSMailBox.cpp	Tue May 25 12:23:16 2010 +0300
+++ b/emailservices/emailframework/commonlib/src/CFSMailBox.cpp	Wed Jun 09 09:22:57 2010 +0300
@@ -27,6 +27,7 @@
 #include "cfsmailrequestobserver.h"
 
 #include "cmailboxstateext.h"
+#include "cconnectionstatusqueryext.h" 
 
 const TInt KMaxMruEntries( 150 );
 
@@ -79,7 +80,7 @@
         // Release extension needs to be called twice because, previous
         // CExtendableEmail::ExtensionL( KMailboxExtMrCalInfo ) call increased
         // reference counter with one, so there is need to relase this one also.
-        CExtendableEmail::ReleaseExtension( extension );
+        while( extension->DecRef() > 1 ) {}
         CExtendableEmail::ReleaseExtension( extension );
         }
     iFolders.ResetAndDestroy();
@@ -845,7 +846,8 @@
     // exists. It is released in desctrucor
     if( aExtension->Uid() != KMailboxExtMrCalInfo )
         {
-        if( aExtension->Uid() == KEmailSettingExtensionUid )
+        if( aExtension->Uid() == KEmailSettingExtensionUid ||
+		    aExtension->Uid() == KEmailConnectionStatusQueryExtensionUid )
             {
             // check that plugin supports requested extension.
             if ( CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid( GetId() ) )
@@ -888,7 +890,8 @@
             }
         }    
     else if ( aInterfaceUid == KEmailMailboxStateExtensionUid ||
-              aInterfaceUid == KEmailSettingExtensionUid )
+              aInterfaceUid == KEmailSettingExtensionUid || 
+			  aInterfaceUid == KEmailConnectionStatusQueryExtensionUid )
         {
         if ( !extension )
             {