diff -r aa5a574040a4 -r a3cc46f37772 harvester/monitorplugins/mmcplugin/src/mmcscannerao.cpp --- a/harvester/monitorplugins/mmcplugin/src/mmcscannerao.cpp Tue Jul 06 14:44:37 2010 +0300 +++ b/harvester/monitorplugins/mmcplugin/src/mmcscannerao.cpp Fri Sep 17 16:54:49 2010 +0300 @@ -82,6 +82,7 @@ // Delete instance variables if any delete iMmcFileList; + iMmcFileList = NULL; iEntryArray.ResetAndDestroy(); iEntryArray.Close(); @@ -107,6 +108,14 @@ { case( EUninitialized ): { + WRITELOG("CMmcScannerAO::RunL - Starting processing"); + if( iMediaId == 0 ) + { + WRITELOG("CMmcScannerAO::RunL - MediaId == 0 -> end"); + SetState( EDone ); + break; + } + WRITELOG("CMmcScannerAO::RunL - Setting files to not present"); iMdEClient->SetFilesToNotPresent( iMediaId, ETrue ); SetState( EReadFiles ); @@ -248,6 +257,7 @@ hd->SetEventType( EHarvesterEdit ); hd->SetObjectType( ENormal ); delete ei; + ei = NULL; } else { @@ -255,7 +265,12 @@ hd->SetObjectType( EPlaceholder ); hd->SetClientData( ei ); } - iHdArray.Append( hd ); + + if(iHdArray.Append( hd ) != KErrNone ) + { + delete hd; + hd = NULL; + } iHarvestEntryArray.Remove( i ); }