diff -r 3b03c28289e6 -r f683e24efca3 qtinternetradio/irqsettings/src/irqsettings.cpp --- a/qtinternetradio/irqsettings/src/irqsettings.cpp Fri Jun 11 13:30:40 2010 +0300 +++ b/qtinternetradio/irqsettings/src/irqsettings.cpp Wed Jun 23 18:04:00 2010 +0300 @@ -31,13 +31,7 @@ if (NULL == irqsettings) { - TRAPD(error, irqsettings = createInstanceL()); - if (KErrNone != error) - { - delete irqsettings; - irqsettings = NULL; - Dll::SetTls(NULL); - } + irqsettings = createInstance(); } else { @@ -366,17 +360,37 @@ // @return IRQSettings* // --------------------------------------------------------------------------- // -IRQSettings* IRQSettings::createInstanceL() +IRQSettings* IRQSettings::createInstance() { - IRQSettings* irqsettings = new (ELeave) IRQSettings(); - irqsettings->constructL(); - User::LeaveIfError(Dll::SetTls(irqsettings)); - irqsettings->iSingletonInstances = 1; - - return irqsettings; + IRQSettings* irqsettings = new IRQSettings(); + + TRAPD(leaveCode, doCreateInstanceL(irqsettings)); + if (KErrNone != leaveCode) + { + delete irqsettings; + irqsettings = NULL; + return NULL; + } + else + { + irqsettings->iSingletonInstances = 1; + return irqsettings; + } } // --------------------------------------------------------------------------- +// IRQSettings::doCreateInstanceL() +// Creates IRQSettings instance +// @return IRQSettings* +// --------------------------------------------------------------------------- +// +void IRQSettings::doCreateInstanceL(IRQSettings * aQsettings) +{ + aQsettings->constructL(); + Dll::SetTls(aQsettings); + +} +// --------------------------------------------------------------------------- // IRQSettings::constructL() // Two-Phase Constructor. // ---------------------------------------------------------------------------