From: RĂ©mi Denis-Courmont Date: Wed, 10 Feb 2010 20:54:02 +0000 (+0200) Subject: sout_StreamChainDelete: iterative implementation X-Git-Tag: 1.1.0-ff~193 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=dccd7a6b8ac995823caf3f1e9b17302b2fbced16;p=vlc sout_StreamChainDelete: iterative implementation --- diff --git a/src/stream_output/stream_output.c b/src/stream_output/stream_output.c index 19b1499540..103d690899 100644 --- a/src/stream_output/stream_output.c +++ b/src/stream_output/stream_output.c @@ -812,14 +812,15 @@ static void sout_StreamDelete( sout_stream_t *p_stream ) */ void sout_StreamChainDelete(sout_stream_t *p_first, sout_stream_t *p_last) { - if(!p_first) - return; - - sout_stream_t *p_next = p_first->p_next; + while(p_first != NULL) + { + sout_stream_t *p_next = p_first->p_next; - sout_StreamDelete(p_first); - if(p_first != p_last) - sout_StreamChainDelete(p_next, p_last); + sout_StreamDelete(p_first); + if(p_first == p_last) + break; + p_first = p_next; + } } /* Create a "stream_out" module, which may forward its ES to p_next module */