--- a/emailservices/emailframework/commonlib/src/CFSMailBox.cpp Tue May 11 15:57:15 2010 +0300
+++ b/emailservices/emailframework/commonlib/src/CFSMailBox.cpp Tue May 25 12:23:16 2010 +0300
@@ -21,6 +21,7 @@
#include "cfsmailplugin.h"
#include "cmrcalendarinfoimpl.h"
+#include "emailextensionuids.hrh"
#include "cfsmailbox.h"
#include "cfsmailrequestobserver.h"
@@ -844,8 +845,20 @@
// exists. It is released in desctrucor
if( aExtension->Uid() != KMailboxExtMrCalInfo )
{
- // no specialized behaviour, call base class
- CExtendableEmail::ReleaseExtension( aExtension );
+ if( aExtension->Uid() == KEmailSettingExtensionUid )
+ {
+ // check that plugin supports requested extension.
+ if ( CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid( GetId() ) )
+ {
+ // remove extension from plugin
+ plugin->ReleaseExtension(aExtension);
+ }
+ }
+ else
+ {
+ // no specialized behaviour, call base class
+ CExtendableEmail::ReleaseExtension( aExtension );
+ }
}
else
{
@@ -874,7 +887,8 @@
CleanupStack::Pop(); // calInfo
}
}
- else if ( aInterfaceUid == KEmailMailboxStateExtensionUid )
+ else if ( aInterfaceUid == KEmailMailboxStateExtensionUid ||
+ aInterfaceUid == KEmailSettingExtensionUid )
{
if ( !extension )
{