]> git.sesse.net Git - vlc/commitdiff
Extensions/Qt: use lock on extensions list
authorJean-Philippe André <jpeg@videolan.org>
Thu, 28 Jan 2010 11:24:24 +0000 (12:24 +0100)
committerJean-Philippe André <jpeg@videolan.org>
Thu, 28 Jan 2010 15:17:35 +0000 (16:17 +0100)
modules/gui/qt4/extensions_manager.cpp

index acca48026056e4c5220a54b984c14885f523b9e8..ac99a2d0b9307ee1d0e7b1e35a9caf79c189b8ed 100644 (file)
@@ -119,6 +119,8 @@ void ExtensionsManager::menu( QMenu *current )
     action->setEnabled( false );
     current->addSeparator();
 
+    vlc_mutex_lock( &p_extensions_manager->lock );
+
     extension_t *p_ext = NULL;
     int i_ext = 0;
     FOREACH_ARRAY( p_ext, p_extensions_manager->extensions )
@@ -183,6 +185,8 @@ void ExtensionsManager::menu( QMenu *current )
     }
     FOREACH_END()
 
+    vlc_mutex_unlock( &p_extensions_manager->lock );
+
     /* Possibility to unload the module */
     current->addSeparator();
     current->addAction( QIcon( ":/menu/quit" ), qtr( "Unload extensions" ),
@@ -194,6 +198,8 @@ void ExtensionsManager::triggerMenu( int id )
     uint16_t i_ext = MENU_GET_EXTENSION( id );
     uint16_t i_action = MENU_GET_ACTION( id );
 
+    vlc_mutex_lock( &p_extensions_manager->lock );
+
     if( (int) i_ext > p_extensions_manager->extensions.i_size )
     {
         msg_Dbg( p_intf, "can't trigger extension with wrong id %d",
@@ -204,6 +210,8 @@ void ExtensionsManager::triggerMenu( int id )
     extension_t *p_ext = ARRAY_VAL( p_extensions_manager->extensions, i_ext );
     assert( p_ext != NULL);
 
+    vlc_mutex_unlock( &p_extensions_manager->lock );
+
     if( i_action == 0 )
     {
         msg_Dbg( p_intf, "activating or triggering extension '%s'",