Index: /trunk/src/VBox/Main/StorageControllerImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/StorageControllerImpl.cpp	(revision 31327)
+++ /trunk/src/VBox/Main/StorageControllerImpl.cpp	(revision 31328)
@@ -79,9 +79,12 @@
 struct StorageController::Data
 {
-    Data()
+    Data(Machine * const aMachine)
         : pVirtualBox(NULL),
           pSystemProperties(NULL),
-          pParent(NULL)
-    { }
+          pParent(aMachine)
+    {
+        unconst(pVirtualBox) = aMachine->getVirtualBox();
+        unconst(pSystemProperties) = pVirtualBox->getSystemProperties();
+    }
 
     VirtualBox * const                  pVirtualBox;
@@ -136,10 +139,6 @@
     AssertReturn(autoInitSpan.isOk(), E_FAIL);
 
-    m = new Data();
-
-    unconst(m->pVirtualBox) = aParent->getVirtualBox();
-    unconst(m->pSystemProperties) = m->pVirtualBox->getSystemProperties();
-
-    unconst(m->pParent) = aParent;
+    m = new Data(aParent);
+
     /* m->pPeer is left null */
 
@@ -219,7 +218,5 @@
     AssertReturn(autoInitSpan.isOk(), E_FAIL);
 
-    m = new Data();
-
-    unconst(m->pParent) = aParent;
+    m = new Data(aParent);
 
     /* register with parent early, since uninit() will unconditionally
@@ -228,5 +225,5 @@
 
     /* sanity */
-    AutoCaller thatCaller (aThat);
+    AutoCaller thatCaller(aThat);
     AssertComRCReturnRC(thatCaller.rc());
 
@@ -267,7 +264,5 @@
     AssertReturn(autoInitSpan.isOk(), E_FAIL);
 
-    m = new Data();
-
-    unconst(m->pParent) = aParent;
+    m = new Data(aParent);
     /* m->pPeer is left null */
 
