]> git.sesse.net Git - vlc/commitdiff
libvlc: Make sure we remove object observers in media_discoverer.
authorPierre d'Herbemont <pdherbemont@free.fr>
Wed, 16 Dec 2009 19:29:53 +0000 (20:29 +0100)
committerPierre d'Herbemont <pdherbemont@free.fr>
Thu, 17 Dec 2009 01:44:24 +0000 (02:44 +0100)
src/control/media_discoverer.c

index 8ff7c6abaf1b81b272e5a1052e4db271e716fdb6..9d887e6cfe7fb9d28d9735dbda9128cb500dff18 100644 (file)
@@ -247,7 +247,25 @@ libvlc_media_discoverer_release( libvlc_media_discoverer_t * p_mdis )
 {
     int i;
 
+    vlc_event_detach( services_discovery_EventManager( p_mdis->p_sd ),
+                     vlc_ServicesDiscoveryItemAdded,
+                     services_discovery_item_added,
+                     p_mdis );
+    vlc_event_detach( services_discovery_EventManager( p_mdis->p_sd ),
+                     vlc_ServicesDiscoveryItemRemoved,
+                     services_discovery_item_removed,
+                     p_mdis );
+    vlc_event_detach( services_discovery_EventManager( p_mdis->p_sd ),
+                     vlc_ServicesDiscoveryStarted,
+                     services_discovery_started,
+                     p_mdis );
+    vlc_event_detach( services_discovery_EventManager( p_mdis->p_sd ),
+                     vlc_ServicesDiscoveryEnded,
+                     services_discovery_ended,
+                     p_mdis );
+
     libvlc_media_list_release( p_mdis->p_mlist );
+
     vlc_sd_StopAndDestroy( p_mdis->p_sd );
 
     /* Free catname_to_submedialist and all the mlist */