diff -r 5e5528a288fe -r b69e63ed1902 atext/server/src/atextsession.cpp --- a/atext/server/src/atextsession.cpp Fri May 14 16:59:23 2010 +0300 +++ b/atext/server/src/atextsession.cpp Thu May 27 14:01:54 2010 +0300 @@ -199,6 +199,7 @@ // CATExtSession::CATExtSession( CATExtSrv& aServer, const TVersion& aVersion ) : iServer( aServer ), + iEComSession( NULL ), iListener( NULL ), iMetadata( NULL ), iVersion( aVersion ) @@ -217,8 +218,7 @@ TRACE_FUNC_EXIT User::Leave( KErrGeneral ); } - REComSession& ecomSession = REComSession::OpenL(); - CleanupClosePushL( ecomSession ); + iEComSession = &REComSession::OpenL(); TPckgBuf ifUidPckgBuf; TInt retTemp = ReadStructFromMessage( ifUidPckgBuf, EATExtConnectParamUid, @@ -239,10 +239,10 @@ User::Leave( retTemp ); } // Create listener - CATExtListen* listener = CATExtListen::NewLC( ecomSession, this ); + CATExtListen* listener = CATExtListen::NewLC( *iEComSession, this ); listener->AddInterfaceUid( ifUidPckgBuf() ); // Create metadata. Pass iListener to add the UIDs - CATExtMetadata* metadata = CATExtMetadata::NewLC( ecomSession, + CATExtMetadata* metadata = CATExtMetadata::NewLC( *iEComSession, listener, *this ); metadata->CreateImplementationMetadataL( ifUidPckgBuf(), connectionName ); @@ -250,8 +250,6 @@ CleanupStack::Pop( metadata ); CleanupStack::Pop( listener ); CleanupStack::PopAndDestroy( &connectionName ); - CleanupStack::Pop( &ecomSession ); - iEComSession = ecomSession; iListener = listener; iMetadata = metadata; TRACE_FUNC_EXIT @@ -897,7 +895,10 @@ iListener = NULL; delete iMetadata; iMetadata = NULL; - iEComSession.Close(); + if ( iEComSession ) + { + iEComSession->Close(); + } if ( !aSyncClose ) { REComSession::FinalClose();