qtinternetradio/irqsettings/src/irqsettings.cpp
changeset 11 f683e24efca3
parent 3 ee64f059b8e1
child 14 896e9dbc5f19
--- 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.
 // ---------------------------------------------------------------------------