]> git.sesse.net Git - vlc/commitdiff
Fix sout leak if the playlist is gone
authorRémi Denis-Courmont <rdenis@simphalempin.com>
Wed, 4 Jun 2008 15:43:06 +0000 (18:43 +0300)
committerRémi Denis-Courmont <rdenis@simphalempin.com>
Wed, 4 Jun 2008 15:43:06 +0000 (18:43 +0300)
src/input/input.c

index 9914457420f191c61a33d5db502ceb11a5f11347..b73e1d95a98d43a859e8e797f57970f8eb0537fd 100644 (file)
@@ -325,10 +325,7 @@ static void Destructor( input_thread_t * p_input )
         if( priv->b_sout_keep )
             SoutKeep( priv->p_sout );
         else
-        {
             sout_DeleteInstance( priv->p_sout );
-            priv->p_sout = NULL;
-        }
     }
 #endif
     vlc_gc_decref( p_input->p->input.p_item );
@@ -1454,12 +1451,14 @@ static void SoutKeep( sout_instance_t *p_sout )
 {
     playlist_t * p_playlist = vlc_object_find( p_sout, VLC_OBJECT_PLAYLIST,
                                                 FIND_PARENT );
-    if( !p_playlist ) return;
-
-    msg_Dbg( p_sout, "sout has been kept" );
-    vlc_object_attach( p_sout, p_playlist );
-
-    vlc_object_release( p_playlist );
+    if( p_playlist )
+    {
+        msg_Dbg( p_sout, "sout has been kept" );
+        vlc_object_attach( p_sout, p_playlist );
+        vlc_object_release( p_playlist );
+    }
+    else
+        sout_DeleteInstance( p_sout );
 }
 
 /*****************************************************************************