]> git.sesse.net Git - vlc/commitdiff
Fix race condition while removing video outputs
authorRémi Denis-Courmont <rdenis@simphalempin.com>
Sat, 5 Jul 2008 14:27:30 +0000 (17:27 +0300)
committerRémi Denis-Courmont <rdenis@simphalempin.com>
Sat, 5 Jul 2008 14:27:30 +0000 (17:27 +0300)
src/libvlc.c

index f31f150d5f879a0974aaa826822a67ba86b5ad88..e16c14ce413f9b4bb35ece2d9ce4910effe8a5ba 100644 (file)
@@ -970,11 +970,11 @@ int libvlc_InternalCleanup( libvlc_int_t *p_libvlc )
 
     /* Free video outputs */
     msg_Dbg( p_libvlc, "removing all video outputs" );
-    while( (p_vout = vlc_object_find( p_libvlc, VLC_OBJECT_VOUT, FIND_CHILD )) )
+    vlc_list_t *list = vlc_list_find (p_libvlc, VLC_OBJECT_VOUT, FIND_CHILD);
+    for (unsigned i = 0; i < list->i_count; i++)
     {
-        vlc_object_detach( p_vout );
-        vlc_object_release( p_vout );
-        vlc_object_release( p_vout );
+        vlc_object_release (list->p_values[i].p_object);
+        vlc_object_release (list->p_values[i].p_object);
     }
 
     stats_TimersDumpAll( p_libvlc );