]> git.sesse.net Git - vlc/commitdiff
qt4-correct several problems related to p_input (main input manager class)
authorErwan Tulou <brezhoneg1@yahoo.fr>
Fri, 13 Mar 2009 19:10:18 +0000 (20:10 +0100)
committerRémi Denis-Courmont <remi@remlab.net>
Sun, 15 Mar 2009 18:58:40 +0000 (20:58 +0200)
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
modules/gui/qt4/input_manager.cpp

index 929865809eefbaf7217ff25f0da53020bfcca054..13149bd6a744b487db83b95342a6b9588ff2498b 100644 (file)
@@ -942,7 +942,7 @@ void MainInputManager::customEvent( QEvent *event )
         vlc_mutex_lock( &p_intf->change_lock );
         if( p_input && ( p_input->b_dead || !vlc_object_alive (p_input) ) )
         {
-            emit inputChanged( p_input );
+            emit inputChanged( NULL );
             var_DelCallback( p_input, "state", PLItemChanged, this );
             vlc_object_release( p_input );
             p_input = NULL;
@@ -963,13 +963,18 @@ void MainInputManager::customEvent( QEvent *event )
     }
     else
     {
+        /* remove previous stored p_input */
+        if( p_input )
+        {
+            vlc_object_release( p_input );
+            p_input = NULL;
+        }
         /* we are working as a dialogs provider */
         playlist_t *p_playlist = pl_Hold( p_intf );
         p_input = playlist_CurrentInput( p_playlist );
         if( p_input )
         {
             emit inputChanged( p_input );
-            vlc_object_release( p_input );
         }
         pl_Release( p_intf );
     }