macosx: avoid zombie when updating extensions dialog
authorDavid Fuhrmann <dfuhrmann@videolan.org>
Wed, 12 Aug 2015 11:20:38 +0000 (13:20 +0200)
committerDavid Fuhrmann <dfuhrmann@videolan.org>
Wed, 12 Aug 2015 11:23:23 +0000 (13:23 +0200)
CFBridgingRelease was used in the wrong place.
All view objects should only be retained by the window (and in this
situation by the grid view dicts as well), thus they is no need to
additionally retain them for the p_sys_intf pointer.

modules/gui/macosx/ExtensionsDialogProvider.m

index ba1abd1..518aa98 100644 (file)
@@ -382,13 +382,13 @@ static int extensionDialogCallback(vlc_object_t *p_this, const char *psz_variabl
             continue; /* Some widgets may be NULL@this point */
 
         BOOL shouldDestroy = widget->b_kill;
-        NSView *control = CFBridgingRelease(widget->p_sys_intf);
+        NSView *control = (__bridge NSView *)widget->p_sys_intf;
         BOOL update = widget->b_update;
 
         if (!control && !shouldDestroy) {
             control = createControlFromWidget(widget, self);
             updateControlFromWidget(control, widget, self);
-            widget->p_sys_intf = (void *)CFBridgingRetain(control);
+            widget->p_sys_intf = (__bridge void *)control;
             update = YES; // Force update and repositionning
             [control setHidden:widget->b_hide];
         }