diff -r b220a9341636 -r fe9d1bf55678 devsound/a3fdevsound/src/mmfaudioserver/mmfaudioserverinterface.cpp --- a/devsound/a3fdevsound/src/mmfaudioserver/mmfaudioserverinterface.cpp Tue Nov 02 12:13:59 2010 +0000 +++ b/devsound/a3fdevsound/src/mmfaudioserver/mmfaudioserverinterface.cpp Tue Nov 02 12:28:51 2010 +0000 @@ -29,14 +29,24 @@ // EXPORT_C CAudioSvrLoader* CAudioSvrLoader::NewL() { - CAudioSvrLoaderImpl* self = new(ELeave) CAudioSvrLoaderImpl(); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - return self; + return CAudioSvrLoader::NewL(EFalse); } // ----------------------------------------------------------------------------- +// CAudioSvrLoader::NewL +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +EXPORT_C CAudioSvrLoader* CAudioSvrLoader::NewL(TBool aStayOpen) + { + CAudioSvrLoaderImpl* self = new(ELeave) CAudioSvrLoaderImpl(); + CleanupStack::PushL(self); + self->ConstructL(aStayOpen); + CleanupStack::Pop(self); + return self; + } + +// ----------------------------------------------------------------------------- // CAudioSvrLoader::CAudioSvrLoader // C++ default constructor can NOT contain any code, that // might leave. @@ -87,9 +97,9 @@ // (other items were commented in a header). // ----------------------------------------------------------------------------- // - void CAudioSvrLoaderImpl::ConstructL() + void CAudioSvrLoaderImpl::ConstructL(TBool aStayOpen) { - iServer = CMMFAudioServer::NewL(); + iServer = CMMFAudioServer::NewL(aStayOpen); }