From 54a51559031f6f81dcfcb41bd889201264750db7 Mon Sep 17 00:00:00 2001 From: Pierre d'Herbemont Date: Sun, 13 Jul 2008 23:14:31 +0200 Subject: [PATCH] playlist: Don't accept more items when if preparser is dead. --- src/playlist/control.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/playlist/control.c b/src/playlist/control.c index 5bf66f6d0d..8f3e48a7be 100644 --- a/src/playlist/control.c +++ b/src/playlist/control.c @@ -181,6 +181,11 @@ int playlist_PreparseEnqueue( playlist_t *p_playlist, input_item_t *p_item ) { vlc_object_lock( p_playlist->p_preparse ); + if( !vlc_object_alive( p_playlist->p_preparse ) ) + { + vlc_object_unlock( p_playlist->p_preparse ); + return VLC_EGENERIC; + } vlc_gc_incref( p_item ); INSERT_ELEM( p_playlist->p_preparse->pp_waiting, p_playlist->p_preparse->i_waiting, @@ -198,6 +203,12 @@ int playlist_PreparseEnqueueItem( playlist_t *p_playlist, { vlc_object_lock( p_playlist ); vlc_object_lock( p_playlist->p_preparse ); + if( !vlc_object_alive( p_playlist->p_preparse ) ) + { + vlc_object_unlock( p_playlist->p_preparse ); + vlc_object_unlock( p_playlist ); + return VLC_EGENERIC; + } PreparseEnqueueItemSub( p_playlist, p_item ); vlc_object_unlock( p_playlist->p_preparse ); vlc_object_unlock( p_playlist ); @@ -210,6 +221,12 @@ int playlist_AskForArtEnqueue( playlist_t *p_playlist, int i; vlc_object_lock( p_playlist->p_fetcher ); + if( !vlc_object_alive( p_playlist->p_fetcher ) ) + { + vlc_object_unlock( p_playlist->p_fetcher ); + return VLC_EGENERIC; + } + for( i = 0; i < p_playlist->p_fetcher->i_waiting ; i++ ); vlc_gc_incref( p_item ); INSERT_ELEM( p_playlist->p_fetcher->pp_waiting, -- 2.39.2