[vlc-devel] commit: playlist: Correctly indicate why we put a buggy yield() at this place. And document a bit that nasty recusrsive ML_Decref() function. (Pierre d'Herbemont )

git version control git at videolan.org
Tue Apr 1 22:32:57 CEST 2008


vlc | branch: master | Pierre d'Herbemont <pdherbemont at videolan.org> | Tue Apr  1 22:31:07 2008 +0200| [bbf6e4fecf2f42178726ddbcf050c03b6e28b749]

playlist: Correctly indicate why we put a buggy yield() at this place. And document a bit that nasty recusrsive ML_Decref() function.

This comes with my official excuses to funman.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=bbf6e4fecf2f42178726ddbcf050c03b6e28b749
---

 src/playlist/engine.c |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/src/playlist/engine.c b/src/playlist/engine.c
index 18ce3f6..b4fc5d1 100644
--- a/src/playlist/engine.c
+++ b/src/playlist/engine.c
@@ -484,9 +484,16 @@ void playlist_LastLoop( playlist_t *p_playlist )
                                           p_playlist->pp_sds[0]->p_sd->psz_module );
     }
 
-    vlc_gc_incref( p_playlist->p_ml_category->p_input );
     playlist_MLDump( p_playlist );
     /* We don't need the media library anymore */
+
+    /* Because this nasty recursive function decreases the
+     * p_playlist->p_ml_category refcount, it may get deleted.
+     * However we will delete the p_playlist->p_ml_category in the
+     * following FOREACH. */
+    vlc_gc_incref( p_playlist->p_ml_category );
+
+    /* Decref all subitems, and the given items */
     ML_Decref( p_playlist->p_ml_category );
 
     PL_LOCK;




More information about the vlc-devel mailing list