Index: /trunk/src/VBox/HostServices/SharedOpenGL/render/renderspu_cocoa_helper.m
===================================================================
--- /trunk/src/VBox/HostServices/SharedOpenGL/render/renderspu_cocoa_helper.m	(revision 52597)
+++ /trunk/src/VBox/HostServices/SharedOpenGL/render/renderspu_cocoa_helper.m	(revision 52598)
@@ -369,11 +369,16 @@
 - (id)initWithObject:(id)aObject selector:(SEL)aSelector arg:(id)aArg
 {
-    [aObject retain];
-    m_Object = aObject;
-    m_Selector = aSelector;
-    if (aArg != nil)
-        [aArg retain];
-    m_Arg = aArg;
-    
+    self = [super init];
+
+    if (self)
+    {
+        [aObject retain];
+        m_Object = aObject;
+        m_Selector = aSelector;
+        if (aArg != nil)
+            [aArg retain];
+        m_Arg = aArg;
+    }
+
     return self;
 }
@@ -389,4 +394,6 @@
     if (m_Arg != nil)
         [m_Arg release];
+
+    [super dealloc];
 }
 @end
@@ -395,14 +402,20 @@
 - (id)init
 {
-    int rc = RTCritSectInit(&m_Lock);
-    if (!RT_SUCCESS(rc))
-    {
-        DEBUG_WARN(("RTCritSectInit failed %d\n", rc));
-        return nil;
-    }
-
-    m_CurIndex = 0;
-    
-    m_pArray = [[NSMutableArray alloc] init];
+    self = [super init];
+
+    if (self)
+    {
+        int rc = RTCritSectInit(&m_Lock);
+        if (!RT_SUCCESS(rc))
+        {
+            DEBUG_WARN(("RTCritSectInit failed %d\n", rc));
+            return nil;
+        }
+
+        m_CurIndex = 0;
+
+        m_pArray = [[NSMutableArray alloc] init];
+    }
+
     return self;
 }
@@ -410,5 +423,4 @@
 - (void)add:(VBoxTask*)pTask
 {
-    [pTask retain];
     int rc = RTCritSectEnter(&m_Lock);
     if (RT_SUCCESS(rc))
@@ -477,4 +489,6 @@
     [m_pArray release];
     RTCritSectDelete(&m_Lock);
+
+    [super dealloc];
 }
 @end
@@ -548,5 +562,4 @@
     VBoxTaskPerformSelector *pSelTask = [[VBoxTaskPerformSelector alloc] initWithObject:aObject selector:aSelector arg:aArg];
     [self add:pSelTask];
-    [pSelTask release];
 }
 
@@ -590,4 +603,5 @@
 {
     [m_pTasks release];
+    [super dealloc];
 }
 
