[vlc-devel] commit: macosx: Backport [2eabe22e9a56bab12bab80a16aedd9a9701fcfbb] and added a missing pl_lock ( Felix Paul Kühne )

git version control git at videolan.org
Wed May 20 16:47:34 CEST 2009


vlc | branch: 0.9-bugfix | Felix Paul Kühne <fkuehne at videolan.org> | Wed May 20 16:47:30 2009 +0200| [a8914431edb6c873abe673f4250d71385b3d3d92] | committer: Felix Paul Kühne 

macosx: Backport [2eabe22e9a56bab12bab80a16aedd9a9701fcfbb] and added a missing pl_lock

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

 modules/gui/macosx/intf.m |   19 ++++++++++++++-----
 1 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/modules/gui/macosx/intf.m b/modules/gui/macosx/intf.m
index eb6e92e..afb2aa6 100644
--- a/modules/gui/macosx/intf.m
+++ b/modules/gui/macosx/intf.m
@@ -1461,6 +1461,17 @@ static void * ManageThread( void *user_data )
         p_intf->p_sys->b_intf_update = true;
         p_intf->p_sys->b_input_update = false;
         [self setupMenus]; /* Make sure input menu is up to date */
+
+        /* update our info-panel to reflect the new item, if we don't show
+         * the playlist or the selection is empty */
+        if( [self isPlaylistCollapsed] == YES )
+        {
+            playlist_t * p_playlist = pl_Yield( p_intf );
+            PL_LOCK;
+            [[self getInfo] updatePanelWithItem: p_playlist->status.p_item->p_input];
+            PL_UNLOCK;
+            pl_Release( p_intf );
+        }
     }
     if( p_intf->p_sys->b_intf_update )
     {
@@ -1472,7 +1483,9 @@ static void * ManageThread( void *user_data )
 
         playlist_t * p_playlist = pl_Yield( p_intf );
     /* TODO: fix i_size use */
+        PL_LOCK;
         b_plmul = p_playlist->items.i_size > 1;
+        PL_UNLOCK;
 
         p_input = playlist_CurrentInput( p_playlist );
         bool b_buffering = NO;
@@ -1488,11 +1501,6 @@ static void * ManageThread( void *user_data )
                 b_buffering = YES;
             }
 
-            /* update our info-panel to reflect the new item, if we don't show
-             * the playlist or the selection is empty */
-            if( [self isPlaylistCollapsed] == YES )
-                [[self getInfo] updatePanelWithItem: p_playlist->status.p_item->p_input];
-
             /* seekable streams */
             b_seekable = var_GetBool( p_input, "seekable" );
 
@@ -1583,6 +1591,7 @@ static void * ManageThread( void *user_data )
             [[o_controls getVoutView] updateTitle];
  
             [o_playlist updateRowSelection];
+
             p_intf->p_sys->b_current_title_update = FALSE;
             p_intf->p_sys->b_intf_update = true;
         }




More information about the vlc-devel mailing list