Note, this commit may create some assert in previously working code. That does mean that this code wasn't properly working, and that it lacks a PL_LOCK. I prefer nice assert() over races.
playlist_item_t *p_root )
{
int i;
playlist_item_t *p_root )
{
int i;
assert( p_root != NULL );
for( i = 0 ; i< p_root->i_children ; i++ )
{
assert( p_root != NULL );
for( i = 0 ; i< p_root->i_children ; i++ )
{
int playlist_LiveSearchUpdate( playlist_t *p_playlist, playlist_item_t *p_root,
const char *psz_string )
{
int playlist_LiveSearchUpdate( playlist_t *p_playlist, playlist_item_t *p_root,
const char *psz_string )
{
p_playlist->b_reset_currently_playing = true;
playlist_LiveSearchUpdateInternal( p_playlist, p_root, psz_string );
vlc_object_signal_maybe( VLC_OBJECT(p_playlist) );
p_playlist->b_reset_currently_playing = true;
playlist_LiveSearchUpdateInternal( p_playlist, p_root, psz_string );
vlc_object_signal_maybe( VLC_OBJECT(p_playlist) );
int playlist_NodeEmpty( playlist_t *p_playlist, playlist_item_t *p_root,
bool b_delete_items )
{
int playlist_NodeEmpty( playlist_t *p_playlist, playlist_item_t *p_root,
bool b_delete_items )
{
int i;
if( p_root->i_children == -1 )
{
int i;
if( p_root->i_children == -1 )
{
int playlist_NodeDelete( playlist_t *p_playlist, playlist_item_t *p_root,
bool b_delete_items, bool b_force )
{
int playlist_NodeDelete( playlist_t *p_playlist, playlist_item_t *p_root,
bool b_delete_items, bool b_force )
{
int i;
if( p_root->i_children == -1 )
int i;
if( p_root->i_children == -1 )
playlist_item_t *p_parent,
int i_position )
{
playlist_item_t *p_parent,
int i_position )
{
(void)p_playlist;
assert( p_parent && p_parent->i_children != -1 );
if( i_position == -1 ) i_position = p_parent->i_children ;
(void)p_playlist;
assert( p_parent && p_parent->i_children != -1 );
if( i_position == -1 ) i_position = p_parent->i_children ;
playlist_item_t *p_item,
playlist_item_t *p_parent )
{
playlist_item_t *p_item,
playlist_item_t *p_parent )
{
(void)p_playlist;
for(int i= 0; i< p_parent->i_children ; i++ )
(void)p_playlist;
for(int i= 0; i< p_parent->i_children ; i++ )
*/
int playlist_NodeChildrenCount( playlist_t *p_playlist, playlist_item_t*p_node)
{
*/
int playlist_NodeChildrenCount( playlist_t *p_playlist, playlist_item_t*p_node)
{
playlist_item_t *playlist_ChildSearchName( playlist_item_t *p_node,
const char *psz_search )
{
playlist_item_t *playlist_ChildSearchName( playlist_item_t *p_node,
const char *psz_search )
{
+ playlist_t * p_playlist = p_node->p_playlist; /* For assert_locked */
+ PL_ASSERT_LOCKED;
int i;
if( p_node->i_children < 0 )
int i;
if( p_node->i_children < 0 )
playlist_item_t **pp_node_one,
bool b_for_sd )
{
playlist_item_t **pp_node_one,
bool b_for_sd )
{
*pp_node_cat = playlist_NodeCreate( p_playlist, psz_name,
p_playlist->p_root_category, 0, NULL );
*pp_node_one = playlist_NodeCreate( p_playlist, psz_name,
*pp_node_cat = playlist_NodeCreate( p_playlist, psz_name,
p_playlist->p_root_category, 0, NULL );
*pp_node_one = playlist_NodeCreate( p_playlist, psz_name,
playlist_item_t * playlist_GetPreferredNode( playlist_t *p_playlist,
playlist_item_t *p_node )
{
playlist_item_t * playlist_GetPreferredNode( playlist_t *p_playlist,
playlist_item_t *p_node )
{
int i;
if( p_node->p_parent == p_playlist->p_root_category )
{
int i;
if( p_node->p_parent == p_playlist->p_root_category )
{
playlist_item_t *playlist_GetLastLeaf(playlist_t *p_playlist,
playlist_item_t *p_root )
{
playlist_item_t *playlist_GetLastLeaf(playlist_t *p_playlist,
playlist_item_t *p_root )
{
int i;
playlist_item_t *p_item;
for ( i = p_root->i_children - 1; i >= 0; i-- )
int i;
playlist_item_t *p_item;
for ( i = p_root->i_children - 1; i >= 0; i-- )
playlist_item_t *p_item,
bool b_ena, bool b_unplayed )
{
playlist_item_t *p_item,
bool b_ena, bool b_unplayed )
{
playlist_item_t *p_next;
assert( p_root && p_root->i_children != -1 );
playlist_item_t *p_next;
assert( p_root && p_root->i_children != -1 );
playlist_item_t *p_item,
bool b_ena, bool b_unplayed )
{
playlist_item_t *p_item,
bool b_ena, bool b_unplayed )
{
playlist_item_t *p_prev;
PL_DEBUG2( "finding previous os %s within %s", PLI_NAME( p_item ),
playlist_item_t *p_prev;
PL_DEBUG2( "finding previous os %s within %s", PLI_NAME( p_item ),