]> git.sesse.net Git - vlc/commitdiff
vlc_list_children: fix memory leaks
authorRémi Denis-Courmont <rdenis@simphalempin.com>
Sat, 31 May 2008 16:35:56 +0000 (19:35 +0300)
committerRémi Denis-Courmont <rdenis@simphalempin.com>
Sat, 31 May 2008 16:35:56 +0000 (19:35 +0300)
modules/gui/ncurses.c
modules/gui/qt4/dialogs/messages.cpp

index e2792965a7f19d8c80ab709b64a5a8e1aa590380..57313fd81ee5570ccd7d75de578901cb2ca71fc2 100644 (file)
@@ -1493,14 +1493,13 @@ static void DumpObject( intf_thread_t *p_intf, int *l, vlc_object_t *p_obj, int
                 p_obj->psz_object_type, p_obj->i_object_id );
 
     vlc_list_t *list = vlc_list_children( p_obj );
-    vlc_object_release( p_obj );
     for( int i = 0; i < list->i_count ; i++ )
     {
         MainBoxWrite( p_intf, *l, 1 + 2 * i_level,
             i == list->i_count - 1 ? "`-" : "|-" );
         DumpObject( p_intf, l, list->p_values[i].p_object, i_level + 1 );
     }
-
+    vlc_list_release( list );
 }
 
 static void Redraw( intf_thread_t *p_intf, time_t *t_last_refresh )
@@ -1984,7 +1983,6 @@ static void Redraw( intf_thread_t *p_intf, time_t *t_last_refresh )
     {
         int l = 0;
         DrawBox( p_sys->w, y++, 0, h, COLS, _(" Objects "), p_sys->b_color );
-        vlc_object_yield( p_intf->p_libvlc );
         DumpObject( p_intf, &l, VLC_OBJECT( p_intf->p_libvlc ), 0 );
 
         p_sys->i_box_lines_total = l;
index 8d56eee6a7ee4bb4687a32bf6ae8c1c0537832c0..9aaed613ecc6a5d67de4e65f227354cd89b0101c 100644 (file)
@@ -217,10 +217,9 @@ void MessagesDialog::buildTree( QTreeWidgetItem *parentItem,
     item->setExpanded( true );
 
     vlc_list_t *l = vlc_list_children( p_obj );
-    vlc_object_release( p_obj );
-
     for( int i=0; i < l->i_count; i++ )
         buildTree( item, l->p_values[i].p_object );
+    vlc_list_release( l );
 }
 
 void MessagesDialog::clearOrUpdate()
@@ -234,8 +233,6 @@ void MessagesDialog::clearOrUpdate()
 void MessagesDialog::updateTree()
 {
     modulesTree->clear();
-
-    vlc_object_yield( p_intf->p_libvlc );
     buildTree( NULL, VLC_OBJECT( p_intf->p_libvlc ) );
 }