From abc84401cd082ccd70a8bb07f9d96c3cff12b122 Mon Sep 17 00:00:00 2001 From: Jakob Leben Date: Tue, 23 Feb 2010 12:39:41 +0100 Subject: [PATCH] playlist: consistently change input item type when subitems are added --- src/input/item.c | 4 ---- src/playlist/item.c | 12 ++++++++++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/input/item.c b/src/input/item.c index 9872e99ba6..416ec1970a 100644 --- a/src/input/item.c +++ b/src/input/item.c @@ -254,10 +254,6 @@ static void post_subitems( input_item_node_t *p_node ) * the input item children. */ void input_item_PostSubItem( input_item_t *p_parent, input_item_t *p_child ) { - vlc_mutex_lock( &p_parent->lock ); - p_parent->i_type = ITEM_TYPE_PLAYLIST; - vlc_mutex_unlock( &p_parent->lock ); - input_item_node_t *p_node = input_item_node_Create( p_parent ); input_item_node_AppendItem( p_node, p_child ); input_item_node_PostAndDelete( p_node ); diff --git a/src/playlist/item.c b/src/playlist/item.c index 686f0f4ae6..f3cf1965f6 100644 --- a/src/playlist/item.c +++ b/src/playlist/item.c @@ -755,8 +755,16 @@ static void AddItem( playlist_t *p_playlist, playlist_item_t *p_item, static void ChangeToNode( playlist_t *p_playlist, playlist_item_t *p_item ) { int i; - if( p_item->i_children == -1 ) - p_item->i_children = 0; + if( p_item->i_children != -1 ) return; + + p_item->i_children = 0; + + input_item_t *p_input = p_item->p_input; + vlc_mutex_lock( &p_input->lock ); + p_input->i_type = ITEM_TYPE_NODE; + vlc_mutex_unlock( &p_input->lock ); + + var_SetAddress( p_playlist, "item-change", p_item->p_input ); /* Remove it from the array of available items */ ARRAY_BSEARCH( p_playlist->items,->i_id, int, p_item->i_id, i ); -- 2.39.2