From: Pierre d'Herbemont Date: Sun, 6 Jul 2008 21:36:30 +0000 (+0200) Subject: playlist: Make sure the preparser and the fetcher releases all their waiting elements. X-Git-Tag: 0.9.0-test2~150 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=58159c007842b807e5f01d53f3ce728283c3be5f;p=vlc playlist: Make sure the preparser and the fetcher releases all their waiting elements. Fix issue with leaked input item at exit. --- 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 ); }