diff -r bd874ee5e5e2 -r 502e5d91ad42 idlefw/plugins/mcsplugin/publisher/src/mcsplugin.cpp --- a/idlefw/plugins/mcsplugin/publisher/src/mcsplugin.cpp Fri Mar 12 15:43:54 2010 +0200 +++ b/idlefw/plugins/mcsplugin/publisher/src/mcsplugin.cpp Mon Mar 15 12:41:53 2010 +0200 @@ -89,13 +89,8 @@ // CMCSPlugin::~CMCSPlugin() { - Release( iContent ); - - if ( iEngine ) - { - TRAP_IGNORE( iEngine->CleanMCSItemsL() ); - } - + Release( iContent ); + delete iEngine; iObservers.Close(); @@ -162,7 +157,9 @@ return; } - CMenuItem* item( iEngine->FetchMenuItemL( aData.MenuItem() ) ); + CMenuItem* item = NULL; + TRAP_IGNORE ( item = iEngine->FetchMenuItemL( aData.MenuItem() ) ); + CleanupStack::PushL( item ); // One widget item has iDataCount number of elements @@ -173,7 +170,7 @@ //Publish image if ( aObserver.CanPublish( *this, i, aIndex ) ) { - CGulIcon* icon( iEngine->ItemIconL( *item, + CGulIcon* icon( iEngine->ItemIconL( item, TPtrC16( ( const TText16* ) iContentModel[ i ].cid ) ) ); aObserver.PublishPtr( *this, i, icon , aIndex ); @@ -184,7 +181,7 @@ //Publish text if ( aObserver.CanPublish( *this, i, aIndex ) ) { - TPtrC name( iEngine->ItemTextL( *item, + TPtrC name( iEngine->ItemTextL( item, TPtrC16( ( const TText16* ) iContentModel[ i ].cid ) ) ); aObserver.Publish( *this, i, name, aIndex ); @@ -202,10 +199,10 @@ // void CMCSPlugin::Start( TStartReason aReason ) { - if( aReason == EPluginStartup ) + if ( aReason == EPluginStartup ) { - TRAP_IGNORE( iEngine->CreateBkmMenuItemsL() ); - } + TRAP_IGNORE( iEngine->CreateRuntimeMenuItemsL() ); + } } // ---------------------------------------------------------------------------- @@ -213,8 +210,12 @@ // // ---------------------------------------------------------------------------- // -void CMCSPlugin::Stop( TStopReason /*aReason*/ ) +void CMCSPlugin::Stop( TStopReason aReason ) { + if( aReason == EPluginShutdown ) + { + TRAP_IGNORE( iEngine->CleanMCSItemsL() ); + } } // ----------------------------------------------------------------------------