[vlc-devel] [PATCH] Bugfix in Qt Popup Menu

Jean-Philippe André jpeg at via.ecp.fr
Sun Apr 20 02:42:48 CEST 2008


When I used PopupMenu (right click on the video output in Qt4),
I had this error since some time :

ERROR: cannot delete object (340, export) with 1 children
ERROR: Remaining children object (id:375, type:input, name:(null))
 o 00000001 libvlc "vlc", refcount 1, 3 children
 |-o 00000339 interaction (thread 3071294352), refcount 1, parent 1
 |-o 00000415 audio output "alsa", refcount 1, parent 1
 `-o 00000413 video output "x11" (thread 2918538128), refcount 1, 1 child, parent 1
   `-o 00000414 subpicture, refcount 1, 3 children, parent 413
     |-o 00000429 filter, refcount 1, parent 414
     |-o 00000430 filter "freetype", refcount 1, parent 414
     `-o 00000433 filter "scale", refcount 1, parent 414
zsh: abort      ./vlc -vvv

This is because p_input is locked and it's counter is increased
by vlc_object_yield at line 633 (menus.cpp). Just adding a
vlc_object_release( p_input ) solves this issue.

Best regards,

--
Jean-Philippe André - JPeg
---
 modules/gui/qt4/menus.cpp |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/modules/gui/qt4/menus.cpp b/modules/gui/qt4/menus.cpp
index 577accf..1a5d4e7 100644
--- a/modules/gui/qt4/menus.cpp
+++ b/modules/gui/qt4/menus.cpp
@@ -658,6 +658,8 @@ void QVLCMenu::PopupMenu( intf_thread_t *p_intf, bool show )
                     VideoAutoMenuBuilder( p_vout, objects, varnames );
                     vlc_object_release( p_vout );
                 }
+
+                vlc_object_release( p_input );
             }
 
             QMenu *menu = new QMenu();
-- 
1.5.5





More information about the vlc-devel mailing list