[vlc-devel] commit: vlc_list_children: fix memory leaks ( Rémi Denis-Courmont )

git version control git at videolan.org
Sat May 31 18:35:41 CEST 2008


vlc | branch: master | Rémi Denis-Courmont <rdenis at simphalempin.com> | Sat May 31 19:35:56 2008 +0300| [1245b2b35ab23b0a9e06a7194b937e592570bbdf]

vlc_list_children: fix memory leaks

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=1245b2b35ab23b0a9e06a7194b937e592570bbdf
---

 modules/gui/ncurses.c                |    4 +---
 modules/gui/qt4/dialogs/messages.cpp |    5 +----
 2 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/modules/gui/ncurses.c b/modules/gui/ncurses.c
index e279296..57313fd 100644
--- a/modules/gui/ncurses.c
+++ b/modules/gui/ncurses.c
@@ -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;
diff --git a/modules/gui/qt4/dialogs/messages.cpp b/modules/gui/qt4/dialogs/messages.cpp
index 8d56eee..9aaed61 100644
--- a/modules/gui/qt4/dialogs/messages.cpp
+++ b/modules/gui/qt4/dialogs/messages.cpp
@@ -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 ) );
 }
 




More information about the vlc-devel mailing list