[vlc-devel] commit: playlist: More warning fix+lock fixes. (Pierre d'Herbemont )

git version control git at videolan.org
Wed Aug 13 00:54:34 CEST 2008


vlc | branch: master | Pierre d'Herbemont <pdherbemont at videolan.org> | Tue Aug 12 23:52:33 2008 +0200| [b94d650241f8d0ce33e3ca1285d878e6819cd149] | committer: Pierre d'Herbemont 

playlist: More warning fix+lock fixes.

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

 src/playlist/item.c |   18 ++++++++++++++----
 1 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/src/playlist/item.c b/src/playlist/item.c
index cf98e58..7ad73db 100644
--- a/src/playlist/item.c
+++ b/src/playlist/item.c
@@ -231,6 +231,7 @@ static int DeleteFromInput( playlist_t *p_playlist, int i_input_id,
                             playlist_item_t *p_root, bool b_do_stop )
 {
     int i;
+    PL_ASSERT_LOCKED;
     for( i = 0 ; i< p_root->i_children ; i++ )
     {
         if( p_root->pp_children[i]->i_children == -1 &&
@@ -319,6 +320,7 @@ void playlist_Clear( playlist_t * p_playlist, bool b_locked )
  */
 int playlist_DeleteFromItemId( playlist_t *p_playlist, int i_id )
 {
+    PL_ASSERT_LOCKED;
     playlist_item_t *p_item = playlist_ItemGetById( p_playlist, i_id,
                                                     pl_Locked );
     if( !p_item ) return VLC_EGENERIC;
@@ -690,6 +692,8 @@ int playlist_TreeMove( playlist_t * p_playlist, playlist_item_t *p_item,
                        playlist_item_t *p_node, int i_newpos )
 {
     int i_ret;
+    PL_ASSERT_LOCKED;
+
     /* Drop on a top level node. Move in the two trees */
     if( p_node->p_parent == p_playlist->p_root_category ||
         p_node->p_parent == p_playlist->p_root_onelevel )
@@ -732,7 +736,7 @@ int playlist_TreeMove( playlist_t * p_playlist, playlist_item_t *p_item,
     else
         i_ret = TreeMove( p_playlist, p_item, p_node, i_newpos );
     p_playlist->b_reset_currently_playing = true;
-    vlc_object_signal_maybe( VLC_OBJECT(p_playlist) );
+    vlc_object_signal_unlocked( p_playlist );
     return i_ret;
 }
 
@@ -749,6 +753,8 @@ void playlist_SendAddNotify( playlist_t *p_playlist, int i_item_id,
                              int i_node_id, bool b_signal )
 {
     vlc_value_t val;
+    PL_ASSERT_LOCKED;
+
     playlist_add_t *p_add = (playlist_add_t *)malloc( sizeof( playlist_add_t) );
     if( !p_add )
         return;
@@ -758,7 +764,8 @@ void playlist_SendAddNotify( playlist_t *p_playlist, int i_item_id,
     val.p_address = p_add;
     p_playlist->b_reset_currently_playing = true;
     if( b_signal )
-        vlc_object_signal_maybe( VLC_OBJECT(p_playlist) );
+        vlc_object_signal_unlocked( p_playlist );
+
     var_Set( p_playlist, "item-append", val );
     free( p_add );
 }
@@ -793,6 +800,7 @@ static void GoAndPreparse( playlist_t *p_playlist, int i_mode,
                            playlist_item_t *p_item_cat,
                            playlist_item_t *p_item_one )
 {
+    PL_ASSERT_LOCKED;
     if( (i_mode & PLAYLIST_GO ) )
     {
         playlist_item_t *p_parent = p_item_one;
@@ -816,7 +824,7 @@ static void GoAndPreparse( playlist_t *p_playlist, int i_mode,
         if( p_playlist->p_input )
             input_StopThread( p_playlist->p_input );
         p_playlist->request.i_status = PLAYLIST_RUNNING;
-        vlc_object_signal_maybe( VLC_OBJECT(p_playlist) );
+        vlc_object_signal_unlocked( p_playlist );
     }
     /* Preparse if PREPARSE or SPREPARSE & not enough meta */
     char *psz_artist = input_item_GetArtist( p_item_cat->p_input );
@@ -838,6 +846,7 @@ static void GoAndPreparse( playlist_t *p_playlist, int i_mode,
 static void AddItem( playlist_t *p_playlist, playlist_item_t *p_item,
                      playlist_item_t *p_node, int i_mode, int i_pos )
 {
+    PL_ASSERT_LOCKED;
     ARRAY_APPEND(p_playlist->items, p_item);
     ARRAY_APPEND(p_playlist->all_items, p_item);
 
@@ -870,6 +879,7 @@ static int DeleteInner( playlist_t * p_playlist, playlist_item_t *p_item,
 {
     int i;
     int i_id = p_item->i_id;
+    PL_ASSERT_LOCKED;
 
     if( p_item->i_children > -1 )
     {
@@ -897,7 +907,7 @@ static int DeleteInner( playlist_t * p_playlist, playlist_item_t *p_item,
             p_playlist->request.b_request = true;
             p_playlist->request.p_item = NULL;
             msg_Info( p_playlist, "stopping playback" );
-            vlc_object_signal_maybe( VLC_OBJECT(p_playlist) );
+            vlc_object_signal_unlocked( VLC_OBJECT(p_playlist) );
         }
     }
 




More information about the vlc-devel mailing list