[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:16:45 CEST 2010
vlc/vlc-1.1 | branch: master | Jean-Philippe André <jpeg at videolan.org> | Thu Jun 3 00:47:34 2010 +0800| [f83dc64e8011453c0785c1cebc8462af9768e6b7] | committer: Pierre Ynard
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.
(cherry picked from commit 06e609ea922918f4d2d0f427049a236b4a4c08af)
Signed-off-by: Pierre Ynard <linkfanel at yahoo.fr>
> http://git.videolan.org/gitweb.cgi/vlc/vlc-1.1.git/?a=commit;h=f83dc64e8011453c0785c1cebc8462af9768e6b7
---
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