[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