]> git.sesse.net Git - vlc/blobdiff - src/osd/osd.c
osd: Make sure we release properly in __osd_Volume.
[vlc] / src / osd / osd.c
index f1206c9fe9697d0381c38a3111849ec40c46b442..87be707d6aabb3be2ce1f28575d52101b1c5950a 100644 (file)
@@ -29,7 +29,7 @@
 # include "config.h"
 #endif
 
-#include <vlc/vlc.h>
+#include <vlc_common.h>
 #include <vlc_keys.h>
 #include <vlc_osd.h>
 #include <vlc_image.h>
@@ -72,11 +72,8 @@ static osd_menu_t *osd_ParserLoad( vlc_object_t *p_this, const char *psz_file )
     p_menu = vlc_custom_create( p_this, sizeof( *p_menu ), VLC_OBJECT_OSDMENU,
                                 osdmenu_name );
     if( !p_menu )
-    {
-        msg_Err( p_this, "out of memory" );
         return NULL;
-    }
-    vlc_object_yield( p_menu );
+
     vlc_object_attach( p_menu, p_this->p_libvlc );
 
     /* Stuff needed for Parser */
@@ -709,9 +706,9 @@ void __osd_Volume( vlc_object_t *p_this )
             osd_SetMenuUpdate( p_osd, true );
             osd_SetMenuVisible( p_osd, true );
         }
-        vlc_object_release( (vlc_object_t*) p_osd );
         vlc_mutex_unlock( lockval.p_address );
     }
+    vlc_object_release( p_osd );
 }
 
 osd_button_t *__osd_ButtonFind( vlc_object_t *p_this, int i_x, int i_y,