[vlc-commits] commit: Extensions: fix Qt freeze when reloading scripts ( Jean-Philippe André )
git at videolan.org
git at videolan.org
Wed Jun 2 19:09:25 CEST 2010
vlc | branch: master | Jean-Philippe André <jpeg at videolan.org> | Thu Jun 3 00:47:34 2010 +0800| [06e609ea922918f4d2d0f427049a236b4a4c08af] | committer: Jean-Philippe André
Extensions: fix Qt freeze when reloading scripts
Description of the bug:
This freeze happened only on Windows (tested on XP & Wine), but not on
Linux. If I only moved up the "killInstance()" line, then the freeze
would happen only on Linux but not on Windows.
In these cases the QDialog's destructor never returned.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=06e609ea922918f4d2d0f427049a236b4a4c08af
---
modules/gui/qt4/dialogs/extensions.cpp | 9 ++-------
modules/gui/qt4/extensions_manager.cpp | 3 +--
2 files changed, 3 insertions(+), 9 deletions(-)
diff --git a/modules/gui/qt4/dialogs/extensions.cpp b/modules/gui/qt4/dialogs/extensions.cpp
index d765c89..65bb775 100644
--- a/modules/gui/qt4/dialogs/extensions.cpp
+++ b/modules/gui/qt4/dialogs/extensions.cpp
@@ -121,8 +121,8 @@ ExtensionDialog* ExtensionsDialogProvider::UpdateExtDialog(
dialog->has_lock = true;
dialog->UpdateWidgets();
if( strcmp( qtu( dialog->windowTitle() ),
- p_dialog->psz_title ) != 0 )
- dialog->setWindowTitle( qfu( p_dialog->psz_title ) );
+ p_dialog->psz_title ) != 0 )
+ dialog->setWindowTitle( qfu( p_dialog->psz_title ) );
dialog->has_lock = false;
dialog->setVisible( !p_dialog->b_hide );
}
@@ -207,11 +207,6 @@ ExtensionDialog::ExtensionDialog( intf_thread_t *_p_intf,
ExtensionDialog::~ExtensionDialog()
{
msg_Dbg( p_intf, "Deleting extension dialog '%s'", qtu(windowTitle()) );
- /* Delete all widgets */
- extension_widget_t *p_widget;
- p_dialog->b_kill = true;
- p_dialog->p_sys_intf = NULL;
- vlc_cond_signal( &p_dialog->cond );
}
QWidget* ExtensionDialog::CreateWidget( extension_widget_t *p_widget )
diff --git a/modules/gui/qt4/extensions_manager.cpp b/modules/gui/qt4/extensions_manager.cpp
index a272465..35589c8 100644
--- a/modules/gui/qt4/extensions_manager.cpp
+++ b/modules/gui/qt4/extensions_manager.cpp
@@ -118,11 +118,10 @@ void ExtensionsManager::unloadExtensions()
if( !p_extensions_manager )
return;
b_unloading = true;
+ ExtensionsDialogProvider::killInstance();
module_unneed( p_extensions_manager, p_extensions_manager->p_module );
vlc_object_release( p_extensions_manager );
p_extensions_manager = NULL;
- emit extensionsUpdated();
- ExtensionsDialogProvider::killInstance();
}
void ExtensionsManager::reloadExtensions()
More information about the vlc-commits
mailing list