[vlc-devel] commit: Check some invalid uses of pl_Yield() ( Rémi Denis-Courmont )

git version control git at videolan.org
Fri Jun 27 17:41:23 CEST 2008


vlc | branch: master | Rémi Denis-Courmont <rdenis at simphalempin.com> | Fri Jun 27 18:43:15 2008 +0300| [23d1d36b83c4b88c57ea321bbae61394e62956d9]

Check some invalid uses of pl_Yield()

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

 src/playlist/control.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/src/playlist/control.c b/src/playlist/control.c
index 8051f51..1ada120 100644
--- a/src/playlist/control.c
+++ b/src/playlist/control.c
@@ -44,6 +44,11 @@ static void PreparseEnqueueItemSub( playlist_t *, playlist_item_t * );
 playlist_t *__pl_Yield( vlc_object_t *p_this )
 {
     playlist_t *pl = libvlc_priv (p_this->p_libvlc)->p_playlist;
+    /* Objects that are destroyed _after_ the playlist cannot use pl_Yield() */
+    assert (p_this->i_object_type != VLC_OBJECT_VOUT);
+    assert (p_this->i_object_type != VLC_OBJECT_ANNOUNCE);
+    assert ((void *)p_this != libvlc_priv (p_this->p_libvlc)->p_interaction);
+
     assert( pl != NULL );
     vlc_object_yield( pl );
     return pl;




More information about the vlc-devel mailing list