Commit 7d84269b authored by Rafaël Carré's avatar Rafaël Carré

playlist tree: fix potential memleak

also remove one level of indentation
parent 44a22697
...@@ -141,31 +141,27 @@ int playlist_NodeDelete( playlist_t *p_playlist, playlist_item_t *p_root, ...@@ -141,31 +141,27 @@ int playlist_NodeDelete( playlist_t *p_playlist, playlist_item_t *p_root,
bool b_delete_items, bool b_force ) bool b_delete_items, bool b_force )
{ {
PL_ASSERT_LOCKED; PL_ASSERT_LOCKED;
int i;
/* Delete the children */ /* Delete the children */
for( i = p_root->i_children - 1 ; i >= 0; i-- ) for( int i = p_root->i_children - 1 ; i >= 0; i-- )
{ if( b_delete_items || p_root->pp_children[i]->i_children >= 0 )
if( b_delete_items || p_root->pp_children[i]->i_children > -1 )
{
playlist_NodeDelete( p_playlist, p_root->pp_children[i], playlist_NodeDelete( p_playlist, p_root->pp_children[i],
b_delete_items, b_force ); b_delete_items, b_force );
}
}
/* Delete the node */ /* Delete the node */
if( p_root->i_flags & PLAYLIST_RO_FLAG && !b_force ) if( p_root->i_flags & PLAYLIST_RO_FLAG && !b_force )
{ return VLC_SUCCESS;
}
else
{
pl_priv(p_playlist)->b_reset_currently_playing = true; pl_priv(p_playlist)->b_reset_currently_playing = true;
int i; int i;
var_SetInteger( p_playlist, "playlist-item-deleted", p_root->i_id ); var_SetInteger( p_playlist, "playlist-item-deleted", p_root->i_id );
ARRAY_BSEARCH( p_playlist->all_items, ->i_id, int, ARRAY_BSEARCH( p_playlist->all_items, ->i_id, int, p_root->i_id, i );
p_root->i_id, i ); if( i != -1 ) {
if( i != -1 ) vlc_gc_decref(p_playlist->all_items.p_elems[i]->p_input);
printf("deleting %d %p\n", i, p_playlist->all_items.p_elems[i]->p_input);
ARRAY_REMOVE( p_playlist->all_items, i ); ARRAY_REMOVE( p_playlist->all_items, i );
}
if( p_root->i_children == -1 ) { if( p_root->i_children == -1 ) {
ARRAY_BSEARCH( p_playlist->items,->i_id, int, p_root->i_id, i ); ARRAY_BSEARCH( p_playlist->items,->i_id, int, p_root->i_id, i );
...@@ -194,7 +190,6 @@ int playlist_NodeDelete( playlist_t *p_playlist, playlist_item_t *p_root, ...@@ -194,7 +190,6 @@ int playlist_NodeDelete( playlist_t *p_playlist, playlist_item_t *p_root,
playlist_NodeRemoveItem( p_playlist, p_root, p_root->p_parent ); playlist_NodeRemoveItem( p_playlist, p_root, p_root->p_parent );
playlist_ItemRelease( p_root ); playlist_ItemRelease( p_root );
}
return VLC_SUCCESS; return VLC_SUCCESS;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment