Commit 6357ef21 authored by Rémi Duraffort's avatar Rémi Duraffort

Fix potential segfault and move code (CID 178)

parent bcd40e9a
...@@ -345,95 +345,81 @@ void PlaylistListNode( intf_thread_t *p_intf, playlist_t *p_pl, ...@@ -345,95 +345,81 @@ void PlaylistListNode( intf_thread_t *p_intf, playlist_t *p_pl,
playlist_item_t *p_node, char *name, mvar_t *s, playlist_item_t *p_node, char *name, mvar_t *s,
int i_depth ) int i_depth )
{ {
if( p_node != NULL ) if( !p_node || !p_node->p_input )
{ return;
if( p_node->i_children == -1 )
{
char value[512];
char *psz;
mvar_t *itm = mvar_New( name, "set" );
playlist_item_t * p_item = playlist_CurrentPlayingItem(p_pl);
if( p_item && p_node &&
p_item->p_input && p_node->p_input &&
p_item->p_input->i_id == p_node->p_input->i_id )
{
mvar_AppendNewVar( itm, "current", "1" );
}
else
{
mvar_AppendNewVar( itm, "current", "0" );
}
sprintf( value, "%d", p_node->i_id ); if( p_node->i_children == -1 )
mvar_AppendNewVar( itm, "index", value ); {
char value[512];
psz = input_item_GetName( p_node->p_input ); char *psz;
mvar_AppendNewVar( itm, "name", psz ); mvar_t *itm = mvar_New( name, "set" );
free( psz ); playlist_item_t * p_item = playlist_CurrentPlayingItem( p_pl );
if( !p_item || !p_item->p_input )
return;
if( p_item->p_input->i_id == p_node->p_input->i_id )
mvar_AppendNewVar( itm, "current", "1" );
else
mvar_AppendNewVar( itm, "current", "0" );
psz = input_item_GetURI( p_node->p_input ); sprintf( value, "%d", p_node->i_id );
mvar_AppendNewVar( itm, "uri", psz ); mvar_AppendNewVar( itm, "index", value );
free( psz );
sprintf( value, "Item"); psz = input_item_GetName( p_node->p_input );
mvar_AppendNewVar( itm, "type", value ); mvar_AppendNewVar( itm, "name", psz );
free( psz );
sprintf( value, "%d", i_depth ); psz = input_item_GetURI( p_node->p_input );
mvar_AppendNewVar( itm, "depth", value ); mvar_AppendNewVar( itm, "uri", psz );
free( psz );
if( p_node->i_flags & PLAYLIST_RO_FLAG ) sprintf( value, "Item");
{ mvar_AppendNewVar( itm, "type", value );
mvar_AppendNewVar( itm, "ro", "ro" );
}
else
{
mvar_AppendNewVar( itm, "ro", "rw" );
}
sprintf( value, "%ld", sprintf( value, "%d", i_depth );
(long) input_item_GetDuration( p_node->p_input ) ); mvar_AppendNewVar( itm, "depth", value );
mvar_AppendNewVar( itm, "duration", value );
mvar_AppendVar( s, itm ); if( p_node->i_flags & PLAYLIST_RO_FLAG )
} mvar_AppendNewVar( itm, "ro", "ro" );
else else
{ mvar_AppendNewVar( itm, "ro", "rw" );
char value[512];
int i_child;
mvar_t *itm = mvar_New( name, "set" );
mvar_AppendNewVar( itm, "name", p_node->p_input->psz_name ); sprintf( value, "%ld",
mvar_AppendNewVar( itm, "uri", p_node->p_input->psz_name ); (long) input_item_GetDuration( p_node->p_input ) );
mvar_AppendNewVar( itm, "duration", value );
sprintf( value, "Node" ); mvar_AppendVar( s, itm );
mvar_AppendNewVar( itm, "type", value ); }
else
{
char value[512];
int i_child;
mvar_t *itm = mvar_New( name, "set" );
sprintf( value, "%d", p_node->i_id ); mvar_AppendNewVar( itm, "name", p_node->p_input->psz_name );
mvar_AppendNewVar( itm, "index", value ); mvar_AppendNewVar( itm, "uri", p_node->p_input->psz_name );
sprintf( value, "%d", p_node->i_children); sprintf( value, "Node" );
mvar_AppendNewVar( itm, "i_children", value ); mvar_AppendNewVar( itm, "type", value );
sprintf( value, "%d", i_depth ); sprintf( value, "%d", p_node->i_id );
mvar_AppendNewVar( itm, "depth", value ); mvar_AppendNewVar( itm, "index", value );
if( p_node->i_flags & PLAYLIST_RO_FLAG ) sprintf( value, "%d", p_node->i_children);
{ mvar_AppendNewVar( itm, "i_children", value );
mvar_AppendNewVar( itm, "ro", "ro" );
}
else
{
mvar_AppendNewVar( itm, "ro", "rw" );
}
mvar_AppendVar( s, itm ); sprintf( value, "%d", i_depth );
mvar_AppendNewVar( itm, "depth", value );
for (i_child = 0 ; i_child < p_node->i_children ; i_child++) if( p_node->i_flags & PLAYLIST_RO_FLAG )
PlaylistListNode( p_intf, p_pl, mvar_AppendNewVar( itm, "ro", "ro" );
p_node->pp_children[i_child], else
name, s, i_depth + 1); mvar_AppendNewVar( itm, "ro", "rw" );
} mvar_AppendVar( s, itm );
for( i_child = 0 ; i_child < p_node->i_children ; i_child++ )
PlaylistListNode( p_intf, p_pl, p_node->pp_children[i_child],
name, s, i_depth + 1);
} }
} }
......
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