diff -r 12bc758d6a02 -r 25b8d29b7c59 phoneclientserver/phoneserver/src/standard/phsrvsubsessionfactory.cpp --- a/phoneclientserver/phoneserver/src/standard/phsrvsubsessionfactory.cpp Mon Oct 04 15:57:13 2010 +0300 +++ b/phoneclientserver/phoneserver/src/standard/phsrvsubsessionfactory.cpp Fri Oct 15 13:21:28 2010 +0300 @@ -78,39 +78,52 @@ switch( aFunction ) { case EPhoneServerExtCallSubSessionOpen: + { subSession = new( ELeave ) CPhSrvSubSessionExtCall( aSession ); break; + } case EPhoneServerNotifySubSessionOpen: + { subSession = new( ELeave ) CPhSrvSubSessionNotifier( aSession ); break; + } case EPhoneServerUSSDSubSessionOpen: + { subSession = new( ELeave ) CPhSrvSubSessionUssd( aSession ); break; + } case EPhoneServerEmergencyNumberSubSessionOpen: - subSession = new( ELeave ) CPhSrvSubSessionEmergencyNum( aSession ); - break; - case EPhoneServerComHandSubSessionOpen: + { subSession = - CPhSrvSubSessionCommandHandler::NewL( aSession ); + new( ELeave ) CPhSrvSubSessionEmergencyNum( aSession ); break; + } case EPhoneServerMessengerSubSessionOpen: - subSession = - CPhSrvSubSessionMessenger::NewL( aSession ); + { + subSession = CPhSrvSubSessionMessenger::NewL( aSession ); break; - + } + case EPhoneServerComHandSubSessionOpen: + { + subSession = CPhSrvSubSessionCommandHandler::NewL( aSession ); + break; + } case EPhoneServerImageHandlerSubSessionOpen: + { subSession = CPhSrvSubSessionImageHandler::NewL( aSession ); break; + } default: + { + User::Leave( KErrNotSupported ); break; + } } // Complete construction - if ( aFunction != EPhoneServerImageHandlerSubSessionOpen ) - { - CleanupStack::PushL( subSession ); - } + CleanupStack::PushL( subSession ); subSession->ConstructL(); + return subSession; }