From dccd7a6b8ac995823caf3f1e9b17302b2fbced16 Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= Date: Wed, 10 Feb 2010 22:54:02 +0200 Subject: [PATCH] sout_StreamChainDelete: iterative implementation --- src/stream_output/stream_output.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) 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 */ -- 2.39.2