diff -r c743ef5928ba -r f966699dea19 idlehomescreen/widgetmanager/src/wmpersistentwidgetorder.cpp --- a/idlehomescreen/widgetmanager/src/wmpersistentwidgetorder.cpp Tue Feb 02 00:04:13 2010 +0200 +++ b/idlehomescreen/widgetmanager/src/wmpersistentwidgetorder.cpp Fri Feb 19 22:42:37 2010 +0200 @@ -112,7 +112,8 @@ // 1. create stream for storing the data to a file TFileName storeFileName; GetStoreFileNameL( storeFileName ); - CPermanentFileStore* fileStore = CPermanentFileStore::ReplaceLC( + CPermanentFileStore* fileStore = NULL; + fileStore = CPermanentFileStore::ReplaceLC( iFs, storeFileName, EFileWrite ); fileStore->SetTypeL( KPermanentFileStoreLayoutUid ); RStoreWriteStream writer; @@ -121,8 +122,13 @@ writer.WriteInt32L( aArray.Count() ); for( TInt i=0; iUid().iUid; - const TDesC16& publisherId = aArray[i]->HsContentInfo().PublisherId(); + CWmWidgetData* data = aArray[i]; + if ( !data || !data->IsValid() ) + { + User::Leave( KErrArgument ); + } + TInt32 uid = data->Uid().iUid; + const TDesC16& publisherId = data->HsContentInfo().PublisherId(); writer.WriteInt32L( uid ); writer.WriteInt32L( publisherId.Length() ); writer.WriteL( publisherId, publisherId.Length() );