From 4167ffe3ee2f58564b1971ea19f028dd2bd41c82 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rafa=C3=ABl=20Carr=C3=A9?= Date: Wed, 15 Nov 2006 22:12:32 +0000 Subject: [PATCH] Fixes devices removal, and crash on exit --- modules/services_discovery/hal.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/modules/services_discovery/hal.c b/modules/services_discovery/hal.c index 0ec8957c42..855ad537f3 100644 --- a/modules/services_discovery/hal.c +++ b/modules/services_discovery/hal.c @@ -194,11 +194,14 @@ static void Close( vlc_object_t *p_this ) } free( p_sys ); #if defined( HAVE_HAL_1 ) && defined( HAVE_DBUS_2 ) - while( p_sys->i_devices_number > 0 ); + struct udi_input_id_t *p_udi_entry; + + while( p_sys->i_devices_number > 0 ) { - struct udi_input_id_t *p_udi_entry = p_sys->pp_devices[0]; + p_udi_entry = p_sys->pp_devices[0]; if( p_udi_entry->psz_udi ) free( p_udi_entry->psz_udi ); - TAB_REMOVE( p_sys->i_devices_number, p_sys->pp_devices, 0 ); + TAB_REMOVE( p_sys->i_devices_number, p_sys->pp_devices, + p_sys->pp_devices[0] ); if( p_udi_entry ) free( p_udi_entry ); } p_sys->pp_devices = NULL; @@ -293,6 +296,8 @@ static void DelItem( services_discovery_t *p_sd, char* psz_udi ) if( strcmp( psz_udi, p_sys->pp_devices[i]->psz_udi ) == 0 ) { playlist_DeleteFromItemId( p_playlist, p_sys->pp_devices[i]->i_id ); + TAB_REMOVE( p_sys->i_devices_number, p_sys->pp_devices, + p_sys->pp_devices[i] ); } } -- 2.39.2