Commit 09ce2046 authored by Rafaël Carré's avatar Rafaël Carré

Fix media library's input items reference counting

parent a0ff298c
...@@ -396,6 +396,15 @@ check_input: ...@@ -396,6 +396,15 @@ check_input:
PL_UNLOCK; PL_UNLOCK;
} }
static void ML_Decref( playlist_item_t *p_node )
{
vlc_gc_decref( p_node->p_input );
int i;
if( p_node->i_children > 0 )
for( i = 0 ; i < p_node->i_children ; i++ )
ML_Decref( p_node->pp_children[i] );
}
/** /**
* Last loop * Last loop
...@@ -476,6 +485,8 @@ void playlist_LastLoop( playlist_t *p_playlist ) ...@@ -476,6 +485,8 @@ void playlist_LastLoop( playlist_t *p_playlist )
} }
playlist_MLDump( p_playlist ); playlist_MLDump( p_playlist );
/* We don't need the media library anymore */
ML_Decref( p_playlist->p_ml_category );
PL_LOCK; PL_LOCK;
FOREACH_ARRAY( playlist_item_t *p_del, p_playlist->all_items ) FOREACH_ARRAY( playlist_item_t *p_del, p_playlist->all_items )
......
...@@ -180,8 +180,6 @@ int playlist_MLLoad( playlist_t *p_playlist ) ...@@ -180,8 +180,6 @@ int playlist_MLLoad( playlist_t *p_playlist )
vlc_event_detach( &p_input->event_manager, vlc_InputItemSubItemAdded, vlc_event_detach( &p_input->event_manager, vlc_InputItemSubItemAdded,
input_item_subitem_added, p_playlist ); input_item_subitem_added, p_playlist );
vlc_gc_decref( p_input );
free( psz_uri ); free( psz_uri );
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