[vlc-devel] commit: Fix #1487 - race condition ( Rafaël Carré )
git version control
git at videolan.org
Tue May 6 23:55:08 CEST 2008
vlc | branch: master | Rafaël Carré <funman at videolan.org> | Tue May 6 23:55:58 2008 +0200| [82a358acc2f5a2d2b795b4d5ef9458972938ffa2]
Fix #1487 - race condition
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=82a358acc2f5a2d2b795b4d5ef9458972938ffa2
---
src/playlist/control.c | 1 +
src/playlist/engine.c | 4 +++-
2 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/src/playlist/control.c b/src/playlist/control.c
index d07f5d1..bbaa74b 100644
--- a/src/playlist/control.c
+++ b/src/playlist/control.c
@@ -437,6 +437,7 @@ playlist_item_t * playlist_NextItem( playlist_t *p_playlist )
p_playlist->status.p_item );
p_playlist->i_current_index++;
+ assert( p_playlist->i_current_index <= p_playlist->current.i_size );
if( p_playlist->i_current_index == p_playlist->current.i_size )
{
if( !b_loop || p_playlist->current.i_size == 0 ) return NULL;
diff --git a/src/playlist/engine.c b/src/playlist/engine.c
index f39f603..5e0cecd 100644
--- a/src/playlist/engine.c
+++ b/src/playlist/engine.c
@@ -352,7 +352,9 @@ check_input:
* - Request, running requested -> start new item
* - Request, stopped requested -> collect garbage
*/
- if( p_playlist->request.i_status != PLAYLIST_STOPPED )
+ int i_status = p_playlist->request.b_request ?
+ p_playlist->request.i_status : p_playlist->status.i_status;
+ if( i_status != PLAYLIST_STOPPED )
{
msg_Dbg( p_playlist, "starting new item" );
p_item = playlist_NextItem( p_playlist );
More information about the vlc-devel
mailing list