wlansecuritysettings/wlaneapsettingsui/EapPeap/ConfigUi/src/EapPeapUiView.cpp
branchRCL_3
changeset 15 aa67149e0134
parent 7 7b8801c4c2d9
--- a/wlansecuritysettings/wlaneapsettingsui/EapPeap/ConfigUi/src/EapPeapUiView.cpp	Mon Mar 15 12:40:54 2010 +0200
+++ b/wlansecuritysettings/wlaneapsettingsui/EapPeap/ConfigUi/src/EapPeapUiView.cpp	Wed Mar 31 21:36:41 2010 +0300
@@ -16,7 +16,7 @@
 */
 
 /*
-* %version: 37.1.8 %
+* %version: 37.1.8.1.1 %
 */
 
 // INCLUDE FILES
@@ -411,6 +411,19 @@
      }
 
 
+// -----------------------------------------------------------------------------
+// CleanupImplArray
+// -----------------------------------------------------------------------------
+//
+static void CleanupResetAndDestroy( TAny* aAny )
+{
+	RImplInfoPtrArray* implArray = 
+		reinterpret_cast<RImplInfoPtrArray*>( aAny );
+
+	implArray->ResetAndDestroy();
+	implArray->Close();
+}
+
 // ---------------------------------------------------------
 // CEapPeapUiDialog::ConfigureL
 // ---------------------------------------------------------
@@ -420,8 +433,11 @@
     RImplInfoPtrArray eapArray;
     eapArray.Reset();
 
+	CleanupStack::PushL( TCleanupItem( CleanupResetAndDestroy, &eapArray ) );
+
     REComSession::ListImplementationsL( KEapTypeInterfaceUid, 
                                         eapArray );
+
     TInt itemIndex = iEapTypesListBox->CurrentItemIndex();    
     TInt eapIndex( 0 );
     for ( TInt i = 0; i < eapArray.Count(); i++ )
@@ -438,7 +454,9 @@
     CEapType* eapType;
     eapType = CEapType::NewL( eapArray[eapIndex]->DataType(), 
                               iIndexType, iIndex );
-    eapArray.ResetAndDestroy();
+
+	CleanupStack::PopAndDestroy(); // eapArray
+
     eapType->SetTunnelingType( KEapPeapId );
     CleanupStack::PushL( eapType );
     TInt buttonId = eapType->InvokeUiL();