[vlc-commits] libvlc: look the value of intf up only once when used

Rémi Denis-Courmont git at videolan.org
Wed Jan 1 19:51:44 CET 2014


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Wed Jan  1 18:52:01 2014 +0200| [bc1fa152b3f17a26eef9cf57596c8368b6e30829] | committer: Rémi Denis-Courmont

libvlc: look the value of intf up only once when used

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=bc1fa152b3f17a26eef9cf57596c8368b6e30829
---

 src/interface/interface.c |   11 +++--------
 src/libvlc.c              |   22 +++++++++++-----------
 2 files changed, 14 insertions(+), 19 deletions(-)

diff --git a/src/interface/interface.c b/src/interface/interface.c
index 52b1344..a51cbe3 100644
--- a/src/interface/interface.c
+++ b/src/interface/interface.c
@@ -102,15 +102,10 @@ int intf_Create( vlc_object_t *p_this, const char *chain )
     var_AddCallback( p_intf, "intf-add", AddIntfCallback, NULL );
 
     /* Choose the best module */
-    p_intf->p_cfg = NULL;
-    char *psz_parser = *chain == '$'
-                     ? var_CreateGetString(p_intf, chain+1)
-                     : strdup( chain );
     char *module;
-    char *psz_tmp = config_ChainCreate( &module, &p_intf->p_cfg,
-                                        psz_parser );
-    free( psz_tmp );
-    free( psz_parser );
+
+    p_intf->p_cfg = NULL;
+    free( config_ChainCreate( &module, &p_intf->p_cfg, chain ) );
     p_intf->p_module = module_need( p_intf, "interface", module, true );
     free(module);
     if( p_intf->p_module == NULL )
diff --git a/src/libvlc.c b/src/libvlc.c
index f79563e..933941e 100644
--- a/src/libvlc.c
+++ b/src/libvlc.c
@@ -594,17 +594,19 @@ void libvlc_InternalDestroy( libvlc_int_t *p_libvlc )
 /**
  * Add an interface plugin and run it
  */
-int libvlc_InternalAddIntf( libvlc_int_t *p_libvlc, char const *psz_module )
+int libvlc_InternalAddIntf( libvlc_int_t *p_libvlc, const char *name )
 {
+    int ret;
+
     if( !p_libvlc )
         return VLC_EGENERIC;
 
-    if( psz_module == NULL ) /* requesting the default interface */
-    {
+    if( name != NULL )
+        ret = intf_Create( p_libvlc, name );
+    else
+    {   /* Default interface */
         char *intf = var_InheritString( p_libvlc, "intf" );
-        if( intf != NULL ) /* "intf" has not been set */
-            free( intf );
-        else
+        if( intf == NULL ) /* "intf" has not been set */
         {
             char *pidfile = var_InheritString( p_libvlc, "pidfile" );
             if( pidfile != NULL )
@@ -614,13 +616,11 @@ int libvlc_InternalAddIntf( libvlc_int_t *p_libvlc, char const *psz_module )
                           _("Running vlc with the default interface. "
                             "Use 'cvlc' to use vlc without interface.") );
         }
+        ret = intf_Create( p_libvlc, intf );
+        name = "default";
     }
-
-    /* Try to create the interface */
-    int ret = intf_Create( p_libvlc, psz_module ? psz_module : "$intf" );
     if( ret )
-        msg_Err( p_libvlc, "interface \"%s\" initialization failed",
-                 psz_module ? psz_module : "default" );
+        msg_Err( p_libvlc, "interface \"%s\" initialization failed", name );
     return ret;
 }
 



More information about the vlc-commits mailing list