--- a/idlehomescreen/widgetmanager/src/wmwidgetloaderao.cpp Tue Feb 02 00:04:13 2010 +0200
+++ b/idlehomescreen/widgetmanager/src/wmwidgetloaderao.cpp Fri Feb 19 22:42:37 2010 +0200
@@ -135,6 +135,7 @@
controller.WidgetListL( *contentInfoArray );
// 2. load the widget order
+ if ( iWidgetOrder ) { Cleanup(); }
iWidgetOrder = CWmPersistentWidgetOrder::NewL( iWmPlugin.FileServer() );
TRAPD( loadError, iWidgetOrder->LoadL() );
@@ -152,6 +153,7 @@
while( contentInfoArray->Array().Count() > 0 )
{
CHsContentInfo* contentInfo = contentInfoArray->Array()[0];
+ if ( !contentInfo ) { break; }
contentInfoArray->Array().Remove( 0 );
// check if this widget exists.
@@ -255,19 +257,20 @@
}
CleanupStack::Pop( aContentInfo );
- CWmWidgetData* widgetData = CWmWidgetData::NewLC(
+ CWmWidgetData* widgetData = CWmWidgetData::NewLC(
iWidgetsList.LogoSize(),
iWmPlugin.ResourceLoader(),
aContentInfo, iWidgetRegistry );
widgetData->SetPersistentWidgetOrder( iWidgetOrder );
widgetData->SetValid( ETrue );
- iWidgetsList.AddWidgetDataL( widgetData, EFalse );
- if ( iUninstallUid != KNullUid
- && iUninstallUid == widgetData->PublisherUid() )
+
+ if ( iUninstallUid != KNullUid &&
+ iUninstallUid == widgetData->PublisherUid() )
{
widgetData->VisualizeUninstallL();
}
+ iWidgetsList.AddWidgetDataL( widgetData, EFalse );
CleanupStack::Pop( widgetData );
}