]> git.sesse.net Git - vlc/commitdiff
Check some invalid uses of pl_Yield()
authorRémi Denis-Courmont <rdenis@simphalempin.com>
Fri, 27 Jun 2008 15:43:15 +0000 (18:43 +0300)
committerRémi Denis-Courmont <rdenis@simphalempin.com>
Fri, 27 Jun 2008 15:43:15 +0000 (18:43 +0300)
src/playlist/control.c

index 8051f51f3780e1fdf34dca5a260b325ba854fc8d..1ada1204c9684847b13165390cb9e01c72c176d9 100644 (file)
@@ -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;