From 58159c007842b807e5f01d53f3ce728283c3be5f Mon Sep 17 00:00:00 2001 From: Pierre d'Herbemont Date: Sun, 6 Jul 2008 23:36:30 +0200 Subject: [PATCH] playlist: Make sure the preparser and the fetcher releases all their waiting elements. Fix issue with leaked input item at exit. --- src/playlist/engine.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/playlist/engine.c b/src/playlist/engine.c index 1a39ce50f9..603fdc3dd7 100644 --- a/src/playlist/engine.c +++ b/src/playlist/engine.c @@ -601,6 +601,13 @@ void playlist_PreparseLoop( playlist_preparse_t *p_obj ) msleep( (i_activity+1) * 1000 ); vlc_object_lock( p_obj ); } + + for( int i = 0; i < p_obj->i_waiting; i++ ) + { + vlc_gc_decref( p_obj->pp_waiting[i] ); + REMOVE_ELEM( p_obj->pp_waiting, p_obj->i_waiting, 0 ); + } + vlc_object_unlock( p_obj ); } @@ -682,6 +689,13 @@ void playlist_FetcherLoop( playlist_fetcher_t *p_obj ) msleep( (i_activity+1) * 1000 ); vlc_object_lock( p_obj ); } + + for( int i = 0; i < p_obj->i_waiting; i++ ) + { + vlc_gc_decref( p_obj->pp_waiting[i] ); + REMOVE_ELEM( p_obj->pp_waiting, p_obj->i_waiting, 0 ); + } + vlc_object_unlock( p_obj ); } -- 2.39.2