[vlc-devel] commit: Fix vout_ReleaseWindow invocation ( Rémi Denis-Courmont )

Rémi Denis-Courmont rdenis at simphalempin.com
Tue Jun 24 22:14:19 CEST 2008


Le mardi 24 juin 2008 21:25:58 git version control, vous avez écrit :
> vlc | branch: master | Rémi Denis-Courmont <rdenis at simphalempin.com> | Tue
> Jun 24 21:26:18 2008 +0300| [6798d2cfedbe767f052318955f80f857647d4817]
>
> Fix vout_ReleaseWindow invocation

At least the Qt4 implementation is evidently lacking some kind of
synchronization when releasing the window (probably also when
"controlling" it):

==9502== Thread 10:
==9502== Invalid read of size 4
==9502==    at 0x4C69E27: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (in /usr/lib/libQtCore.so.4.4.0)
==9502==    by 0x4AA1A50: MainInterface::askReleaseVideo(void*) (main_interface.moc.cpp:145)
==9502==    by 0x49CDD73: MainInterface::releaseVideo(void*) (main_interface.cpp:715)
==9502==    by 0x49C2E41: _ZL11CloseWindowP12vlc_object_t (qt4.cpp:488)
==9502==    by 0x40C2BEE: __module_Unneed (modules.c:671)
==9502==    by 0x409F06E: vout_ReleaseWindow (vout_intf.c:141)
==9502==    by 0x409F130: vout_vaControlDefault (vout_intf.c:828)
==9502==    by 0xBA17463: Control (xcommon.c:3119)
==9502==    by 0x4A8502B: _ZL12vout_ControlP13vout_thread_tiz (vlc_vout.h:559)
==9502==    by 0x4A85AD8: VideoWidget::~VideoWidget() (interface_widgets.cpp:98)
==9502==    by 0x4C6270E: QObjectPrivate::deleteChildren() (in /usr/lib/libQtCore.so.4.4.0)
==9502==    by 0x4ECBB47: QWidget::~QWidget() (in /usr/lib/libQtGui.so.4.4.0)
==9502==  Address 0x4 is not stack'd, malloc'd or (recently) free'd
==9502==
==9502== Process terminating with default action of signal 11 (SIGSEGV)
==9502==  Access not within mapped region at address 0x4
==9502==    at 0x4C69E27: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (in /usr/lib/libQtCore.so.4.4.0)
==9502==    by 0x4AA1A50: MainInterface::askReleaseVideo(void*) (main_interface.moc.cpp:145)
==9502==    by 0x49CDD73: MainInterface::releaseVideo(void*) (main_interface.cpp:715)
==9502==    by 0x49C2E41: _ZL11CloseWindowP12vlc_object_t (qt4.cpp:488)
==9502==    by 0x40C2BEE: __module_Unneed (modules.c:671)
==9502==    by 0x409F06E: vout_ReleaseWindow (vout_intf.c:141)
==9502==    by 0x409F130: vout_vaControlDefault (vout_intf.c:828)
==9502==    by 0xBA17463: Control (xcommon.c:3119)
==9502==    by 0x4A8502B: _ZL12vout_ControlP13vout_thread_tiz (vlc_vout.h:559)
==9502==    by 0x4A85AD8: VideoWidget::~VideoWidget() (interface_widgets.cpp:98)
==9502==    by 0x4C6270E: QObjectPrivate::deleteChildren() (in /usr/lib/libQtCore.so.4.4.0)
==9502==    by 0x4ECBB47: QWidget::~QWidget() (in /usr/lib/libQtGui.so.4.4.0)
==9502==
=

But I have no idea how class MainInterface works, so...

-- 
Rémi Denis-Courmont
http://www.remlab.net/



More information about the vlc-devel mailing list