[vlc-devel] commit: Playlist: Simplification and fix CID 151 ( Rémi Duraffort )
git version control
git at videolan.org
Fri Oct 10 23:20:31 CEST 2008
vlc | branch: 0.9-bugfix | Rémi Duraffort <ivoire at videolan.org> | Fri Oct 10 22:43:36 2008 +0200| [738491f7267a6f9a53544f37448d9c5b9f5de841] | committer: Derk-Jan Hartman
Playlist: Simplification and fix CID 151
(cherry picked from commit 64632922f6574576ac9218dfe13d9b63319ca378)
Signed-off-by: Derk-Jan Hartman <hartman at videolan.org>
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=738491f7267a6f9a53544f37448d9c5b9f5de841
---
src/playlist/tree.c | 39 +++++++++++++++++++--------------------
1 files changed, 19 insertions(+), 20 deletions(-)
diff --git a/src/playlist/tree.c b/src/playlist/tree.c
index 4f7f7f2..bdc3fb8 100644
--- a/src/playlist/tree.c
+++ b/src/playlist/tree.c
@@ -481,41 +481,40 @@ playlist_item_t *GetNextItem( playlist_t *p_playlist,
playlist_item_t *p_root,
playlist_item_t *p_item )
{
- playlist_item_t *p_parent;
- int i;
+ /* If the item is NULL, return the firt child of root */
+ if( p_item == NULL )
+ {
+ if( p_root->i_children > 0 )
+ return p_root->pp_children[0];
+ else
+ return NULL;
+ }
/* Node with children, get the first one */
- if( p_item && p_item->i_children > 0 )
+ if( p_item->i_children > 0 )
return p_item->pp_children[0];
- if( p_item != NULL )
- p_parent = p_item->p_parent;
- else
- p_parent = p_root;
- for( i= 0 ; i < p_parent->i_children ; i++ )
+ playlist_item_t* p_parent = p_item->p_parent;
+ for( int i = 0 ; i < p_parent->i_children ; i++ )
{
- if( p_item == NULL || p_parent->pp_children[i] == p_item )
+ if( p_parent->pp_children[i] == p_item )
{
- if( p_item == NULL )
- i = -1;
-
- if( i+1 >= p_parent->i_children )
+ // Return the next children
+ if( i + 1 < p_parent->i_children )
+ return p_parent->pp_children[i+1];
+ // We are the least one, so try to have uncles
+ else
{
- /* Was already the last sibling. Look for uncles */
PL_DEBUG2( "Current item is the last of the node,"
"looking for uncle from %s",
p_parent->p_input->psz_name );
-
if( p_parent == p_root )
{
PL_DEBUG2( "already at root" );
return NULL;
}
- return GetNextUncle( p_playlist, p_item, p_root );
- }
- else
- {
- return p_parent->pp_children[i+1];
+ else
+ return GetNextUncle( p_playlist, p_item, p_root );
}
}
}
More information about the vlc-devel
mailing list