]> git.sesse.net Git - vlc/commitdiff
Media discovery: remove exception
authorRémi Denis-Courmont <remi@remlab.net>
Tue, 2 Feb 2010 21:36:24 +0000 (23:36 +0200)
committerRémi Denis-Courmont <remi@remlab.net>
Tue, 2 Feb 2010 21:45:02 +0000 (23:45 +0200)
include/vlc/libvlc_media_discoverer.h
src/control/media_discoverer.c

index 38392dd870901c9cdd5bdcafdd0c23ae951fc993..a1a7396b4b51a26dd958f66586343704779011c2 100644 (file)
@@ -51,13 +51,11 @@ typedef struct libvlc_media_discoverer_t libvlc_media_discoverer_t;
  *
  * \param p_inst libvlc instance
  * \param psz_name service name
- * \param p_e an initialized exception object
- * \return media discover object
+ * \return media discover object or NULL in case of error
  */
 VLC_PUBLIC_API libvlc_media_discoverer_t *
 libvlc_media_discoverer_new_from_name( libvlc_instance_t * p_inst,
-                                       const char * psz_name,
-                                       libvlc_exception_t * p_e );
+                                       const char * psz_name );
 
 /**
  * Release media discover object. If the reference count reaches 0, then
index 23e06c3beb4bbfde5c22fa8f9b3bbf882b2030ca..32fdfdebdc9cf6c2ed1acababf606617b7eee666 100644 (file)
@@ -170,15 +170,13 @@ static void services_discovery_ended( const vlc_event_t * p_event,
  **************************************************************************/
 libvlc_media_discoverer_t *
 libvlc_media_discoverer_new_from_name( libvlc_instance_t * p_inst,
-                                       const char * psz_name,
-                                       libvlc_exception_t * p_e )
+                                       const char * psz_name )
 {
     libvlc_media_discoverer_t * p_mdis;
 
     p_mdis = malloc(sizeof(libvlc_media_discoverer_t));
-    if( !p_mdis )
+    if( unlikely(!p_mdis) )
     {
-        libvlc_exception_raise( p_e );
         libvlc_printerr( "Not enough memory" );
         return NULL;
     }
@@ -206,9 +204,9 @@ libvlc_media_discoverer_new_from_name( libvlc_instance_t * p_inst,
 
     if( !p_mdis->p_sd )
     {
-        libvlc_media_list_release( p_mdis->p_mlist );
-        libvlc_exception_raise( p_e );
         libvlc_printerr( "%s: no such discovery module found", psz_name );
+        libvlc_media_list_release( p_mdis->p_mlist );
+        libvlc_event_manager_release( p_mdis->p_event_manager );
         free( p_mdis );
         return NULL;
     }
@@ -233,9 +231,9 @@ libvlc_media_discoverer_new_from_name( libvlc_instance_t * p_inst,
     /* Here we go */
     if( !vlc_sd_Start( p_mdis->p_sd, psz_name ) )
     {
-        libvlc_media_list_release( p_mdis->p_mlist );
-        libvlc_exception_raise( p_e );
         libvlc_printerr( "%s: internal module error", psz_name );
+        libvlc_media_list_release( p_mdis->p_mlist );
+        libvlc_event_manager_release( p_mdis->p_event_manager );
         free( p_mdis );
         return NULL;
     }