]> git.sesse.net Git - vlc/blobdiff - src/playlist/thread.c
Remove playlist items when destroying the playlist...
[vlc] / src / playlist / thread.c
index 322e79ef92063e279302404195d7fe3621dad3c8..b2ad6768f1841d504a0d548829594f2b1feba503 100644 (file)
@@ -118,22 +118,6 @@ void playlist_Deactivate( playlist_t *p_playlist )
     /* Release the current item */
     set_current_status_item( p_playlist, NULL );
 
-    FOREACH_ARRAY( playlist_item_t *p_del, p_playlist->all_items )
-        free( p_del->pp_children );
-        vlc_gc_decref( p_del->p_input );
-        free( p_del );
-    FOREACH_END();
-    ARRAY_RESET( p_playlist->all_items );
-    FOREACH_ARRAY( playlist_item_t *p_del, p_sys->items_to_delete )
-        free( p_del->pp_children );
-        vlc_gc_decref( p_del->p_input );
-        free( p_del );
-    FOREACH_END();
-    ARRAY_RESET( p_sys->items_to_delete );
-
-    ARRAY_RESET( p_playlist->items );
-    ARRAY_RESET( p_playlist->current );
-
     PL_UNLOCK;
 
     msg_Dbg( p_playlist, "Deactivated" );
@@ -545,7 +529,7 @@ static void LoopRequest( playlist_t *p_playlist )
     const int i_status = p_sys->request.b_request ?
                          p_sys->request.i_status : p_sys->status.i_status;
 
-    if( i_status == PLAYLIST_STOPPED )
+    if( i_status == PLAYLIST_STOPPED || !vlc_object_alive( p_playlist ) )
     {
         p_sys->status.i_status = PLAYLIST_STOPPED;