vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Thu May 31 22:00:34 2018 +0300| [8d46058e2ec570fc25b1324c5923a311d665fda2] | committer: Rémi Denis-Courmont
vlm: read vlm-conf variable just once > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=8d46058e2ec570fc25b1324c5923a311d665fda2 --- include/vlc_vlm.h | 4 ++-- lib/vlm.c | 2 +- modules/gui/qt/dialogs/vlm.cpp | 2 +- modules/lua/libs/vlm.c | 2 +- src/input/vlm.c | 11 ++++------- src/libvlc.c | 6 +++--- src/missing.c | 3 ++- 7 files changed, 14 insertions(+), 16 deletions(-) diff --git a/include/vlc_vlm.h b/include/vlc_vlm.h index c5fddf0adc..ad323038af 100644 --- a/include/vlc_vlm.h +++ b/include/vlc_vlm.h @@ -184,8 +184,8 @@ struct vlm_message_t extern "C" { #endif -VLC_API vlm_t * vlm_New( vlc_object_t * ); -#define vlm_New( a ) vlm_New( VLC_OBJECT(a) ) +VLC_API vlm_t * vlm_New( vlc_object_t *, const char *path ); +#define vlm_New( a, p ) vlm_New( VLC_OBJECT(a), p ) VLC_API void vlm_Delete( vlm_t * ); VLC_API int vlm_ExecuteCommand( vlm_t *, const char *, vlm_message_t ** ); VLC_API int vlm_Control( vlm_t *p_vlm, int i_query, ... ); diff --git a/lib/vlm.c b/lib/vlm.c index 980499f0ce..1f66058efa 100644 --- a/lib/vlm.c +++ b/lib/vlm.c @@ -139,7 +139,7 @@ static int libvlc_vlm_init( libvlc_instance_t *p_instance ) if( !p_instance->vlm->p_vlm ) { - p_instance->vlm->p_vlm = vlm_New( p_instance->p_libvlc_int ); + p_instance->vlm->p_vlm = vlm_New( p_instance->p_libvlc_int, NULL ); if( !p_instance->vlm->p_vlm ) { libvlc_printerr( "VLM not supported or out of memory" ); diff --git a/modules/gui/qt/dialogs/vlm.cpp b/modules/gui/qt/dialogs/vlm.cpp index e88cc63caa..0c90f0ce78 100644 --- a/modules/gui/qt/dialogs/vlm.cpp +++ b/modules/gui/qt/dialogs/vlm.cpp @@ -55,7 +55,7 @@ VLMDialog::VLMDialog( intf_thread_t *_p_intf ) : QVLCFrame( _p_intf ) { - vlm_t *p_vlm = vlm_New( p_intf ); + vlm_t *p_vlm = vlm_New( p_intf, NULL ); if( !p_vlm ) { diff --git a/modules/lua/libs/vlm.c b/modules/lua/libs/vlm.c index 7b2b708306..7b1350cb40 100644 --- a/modules/lua/libs/vlm.c +++ b/modules/lua/libs/vlm.c @@ -53,7 +53,7 @@ static const luaL_Reg vlclua_vlm_reg[] = { static int vlclua_vlm_new( lua_State *L ) { vlc_object_t *p_this = vlclua_get_this( L ); - vlm_t *p_vlm = vlm_New( p_this ); + vlm_t *p_vlm = vlm_New( p_this, NULL ); if( !p_vlm ) return luaL_error( L, "Cannot start VLM." ); diff --git a/src/input/vlm.c b/src/input/vlm.c index d8cfa46b52..492fca6288 100644 --- a/src/input/vlm.c +++ b/src/input/vlm.c @@ -115,10 +115,9 @@ static vlc_mutex_t vlm_mutex = VLC_STATIC_MUTEX; /***************************************************************************** * vlm_New: *****************************************************************************/ -vlm_t *vlm_New ( vlc_object_t *p_this ) +vlm_t *vlm_New ( vlc_object_t *p_this, const char *psz_vlmconf ) { vlm_t *p_vlm = NULL, **pp_vlm = &(libvlc_priv (p_this->obj.libvlc)->p_vlm); - char *psz_vlmconf; /* Avoid multiple creation */ vlc_mutex_lock( &vlm_mutex ); @@ -167,9 +166,10 @@ vlm_t *vlm_New ( vlc_object_t *p_this ) *pp_vlm = p_vlm; /* for future reference */ + vlc_mutex_unlock( &vlm_mutex ); + /* Load our configuration file */ - psz_vlmconf = var_CreateGetString( p_vlm, "vlm-conf" ); - if( psz_vlmconf && *psz_vlmconf ) + if( psz_vlmconf != NULL ) { vlm_message_t *p_message = NULL; char *psz_buffer = NULL; @@ -185,9 +185,6 @@ vlm_t *vlm_New ( vlc_object_t *p_this ) free( psz_buffer ); } } - free( psz_vlmconf ); - - vlc_mutex_unlock( &vlm_mutex ); return p_vlm; } diff --git a/src/libvlc.c b/src/libvlc.c index e526b9d85d..99073da504 100644 --- a/src/libvlc.c +++ b/src/libvlc.c @@ -258,14 +258,14 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc, #ifdef ENABLE_VLM /* Initialize VLM if vlm-conf is specified */ - psz_parser = var_CreateGetNonEmptyString( p_libvlc, "vlm-conf" ); + psz_parser = var_InheritString( p_libvlc, "vlm-conf" ); if( psz_parser ) { - priv->p_vlm = vlm_New( p_libvlc ); + priv->p_vlm = vlm_New( p_libvlc, psz_parser ); if( !priv->p_vlm ) msg_Err( p_libvlc, "VLM initialization failed" ); + free( psz_parser ); } - free( psz_parser ); #endif /* diff --git a/src/missing.c b/src/missing.c index 59a4770a96..a3e57e9d73 100644 --- a/src/missing.c +++ b/src/missing.c @@ -241,9 +241,10 @@ vlm_message_t *vlm_MessageNew (const char *a, const char *fmt, ...) } #undef vlm_New -vlm_t *vlm_New (vlc_object_t *obj) +vlm_t *vlm_New (vlc_object_t *obj, const char *file) { msg_Err (obj, "VLM not compiled-in!"); + (void) file; return NULL; } #endif /* !ENABLE_VLM */ _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
