diff -r 36d60d12b4af -r 819e59dfc032 perfapps/memspyui/ui/avkon/src/MemSpyViewProcesses.cpp --- a/perfapps/memspyui/ui/avkon/src/MemSpyViewProcesses.cpp Fri Sep 17 14:22:55 2010 +0300 +++ b/perfapps/memspyui/ui/avkon/src/MemSpyViewProcesses.cpp Mon Oct 04 10:09:02 2010 +0300 @@ -56,8 +56,7 @@ CMemSpyViewProcesses::~CMemSpyViewProcesses() { - iProcesses.Reset(); - //delete iSearchField; + iProcesses.ResetAndDestroy(); delete iMatcherBuffer; } @@ -65,7 +64,15 @@ //void CMemSpyViewProcesses::ConstructL( const TRect& aRect, CCoeControl& aContainer, TAny* aSelectionRune ) void CMemSpyViewProcesses::ConstructL( const TRect& aRect, CCoeControl& aContainer, TProcessId aSelectionRune ) { - iMemSpySession.GetProcessesL(iProcesses); // get processes array; + RArray processes; + iMemSpySession.GetProcessesL( processes ); // get processes array; + CleanupClosePushL( processes ); + iProcesses.ResetAndDestroy(); + for (TInt i=0; i 0 ) - { - iProcesses.Close(); - } - - iMemSpySession.GetProcessesL(iProcesses); // get processes array; - iModel = new (ELeave) CDesC16ArrayFlat( iProcesses.Count() + 1); //array for formated items - - _LIT( KTab, "\t" ); - iModel = FormatModel( iProcesses ); //TODO Format model method with advanced formatting + RArray processes; + iMemSpySession.GetProcessesL( processes ); // get processes array; + CleanupClosePushL( processes ); + iProcesses.ResetAndDestroy(); + for (TInt i=0; i( iListBox ); - //listbox->Model()->SetItemTextArray( &iEngine.Container() ); - listbox->Model()->SetItemTextArray( iModel ); - listbox->Model()->SetOwnershipType( ELbmDoesNotOwnItemArray ); + listbox->Model()->SetItemTextArray( model ); + listbox->Model()->SetOwnershipType( ELbmOwnsItemArray ); + + CleanupStack::Pop( model ); + CleanupStack::PopAndDestroy( &processes ); } @@ -561,9 +570,11 @@ //Model formating methods //TODO: to be debbuged -CDesCArrayFlat* CMemSpyViewProcesses::FormatModel( RArray aProcesses ) +CDesCArrayFlat* CMemSpyViewProcesses::FormatModelLC( const RArray &aProcesses ) { - model = new (ELeave) CDesC16ArrayFlat( iProcesses.Count() + 16 ); //array for formated items + CDesCArrayFlat* model = new (ELeave) CDesC16ArrayFlat( iProcesses.Count() + 16 ); //array for formated items + CleanupStack::PushL( model ); + _LIT( KMemSpyProcessNameFormatSpecBasicName, " \t%S\t\t%8x, " ); for( TInt i=0; i < aProcesses.Count(); i++ )