Commit 8eff8faa authored by Pierre d'Herbemont's avatar Pierre d'Herbemont

control/media_discoverer.c: Small lock issues.

parent 392b19b3
...@@ -51,7 +51,9 @@ static void services_discovery_item_added( const vlc_event_t * p_event, ...@@ -51,7 +51,9 @@ static void services_discovery_item_added( const vlc_event_t * p_event,
* that category in a media_list. */ * that category in a media_list. */
if( psz_cat ) if( psz_cat )
{ {
p_mlist = kVLCDictionaryNotFound;
p_mlist = vlc_dictionary_value_for_key( &p_mdis->catname_to_submedialist, psz_cat ); p_mlist = vlc_dictionary_value_for_key( &p_mdis->catname_to_submedialist, psz_cat );
if( p_mlist == kVLCDictionaryNotFound ) if( p_mlist == kVLCDictionaryNotFound )
{ {
libvlc_media_descriptor_t * p_catmd; libvlc_media_descriptor_t * p_catmd;
...@@ -60,10 +62,12 @@ static void services_discovery_item_added( const vlc_event_t * p_event, ...@@ -60,10 +62,12 @@ static void services_discovery_item_added( const vlc_event_t * p_event,
p_mlist->b_read_only = VLC_TRUE; p_mlist->b_read_only = VLC_TRUE;
/* Insert the newly created mlist in our dictionary */ /* Insert the newly created mlist in our dictionary */
vlc_dictionary_insert( &p_mdis->catname_to_submedialist, psz_cat, p_mlist ); __vlc_dictionary_insert( &p_mdis->catname_to_submedialist, psz_cat, p_mlist, 0 );
/* Insert the md into the root list */ /* Insert the md into the root list */
libvlc_media_list_lock( p_mdis->p_mlist );
_libvlc_media_list_add_media_descriptor( p_mdis->p_mlist, p_catmd, NULL ); _libvlc_media_list_add_media_descriptor( p_mdis->p_mlist, p_catmd, NULL );
libvlc_media_list_unlock( p_mdis->p_mlist );
/* We don't release the mlist cause the dictionary /* We don't release the mlist cause the dictionary
* doesn't retain the object. But we release the md. */ * doesn't retain the object. But we release the md. */
...@@ -71,9 +75,9 @@ static void services_discovery_item_added( const vlc_event_t * p_event, ...@@ -71,9 +75,9 @@ static void services_discovery_item_added( const vlc_event_t * p_event,
} }
} }
libvlc_media_list_lock( p_mdis->p_mlist ); libvlc_media_list_lock( p_mlist );
_libvlc_media_list_add_media_descriptor( p_mlist, p_md, NULL ); _libvlc_media_list_add_media_descriptor( p_mlist, p_md, NULL );
libvlc_media_list_unlock( p_mdis->p_mlist ); libvlc_media_list_unlock( p_mlist );
} }
/************************************************************************** /**************************************************************************
......
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