]> git.sesse.net Git - vlc/commitdiff
sout_StreamChainDelete: iterative implementation
authorRémi Denis-Courmont <remi@remlab.net>
Wed, 10 Feb 2010 20:54:02 +0000 (22:54 +0200)
committerRémi Denis-Courmont <remi@remlab.net>
Wed, 10 Feb 2010 20:54:02 +0000 (22:54 +0200)
src/stream_output/stream_output.c

index 19b1499540cc66b27a19d9c57fb133505552917d..103d69089916e0c2ca6b52449beb47719c12d9b3 100644 (file)
@@ -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 */