From 027b44025e11be76c4c3f9e34c2648841f389f14 Mon Sep 17 00:00:00 2001 From: Pierre d'Herbemont Date: Wed, 24 Feb 2010 14:15:59 +0100 Subject: [PATCH] sd: Export internals with a getters. lua need them. Also fix an obvious leak. --- include/vlc_services_discovery.h | 2 ++ modules/misc/lua/services_discovery.c | 9 +++++---- src/libvlccore.sym | 2 ++ src/playlist/services_discovery.c | 14 ++++++++++++++ 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/include/vlc_services_discovery.h b/include/vlc_services_discovery.h index 0e659f0c72..3a4e9881a6 100644 --- a/include/vlc_services_discovery.h +++ b/include/vlc_services_discovery.h @@ -71,6 +71,8 @@ VLC_EXPORT( services_discovery_t *, vlc_sd_Create, ( vlc_object_t *, const char VLC_EXPORT( bool, vlc_sd_Start, ( services_discovery_t * ) ); VLC_EXPORT( void, vlc_sd_Stop, ( services_discovery_t * ) ); VLC_EXPORT( void, vlc_sd_Destroy, ( services_discovery_t * ) ); +VLC_EXPORT( const char *, vlc_sd_GetName, ( services_discovery_t * ) ); +VLC_EXPORT( config_chain_t *, vlc_sd_GetConfigChain, ( services_discovery_t * ) ); static inline void vlc_sd_StopAndDestroy( services_discovery_t * p_this ) { diff --git a/modules/misc/lua/services_discovery.c b/modules/misc/lua/services_discovery.c index f5e21fdff7..9df7069c3e 100644 --- a/modules/misc/lua/services_discovery.c +++ b/modules/misc/lua/services_discovery.c @@ -57,20 +57,21 @@ int Open_LuaSD( vlc_object_t *p_this ) services_discovery_t *p_sd = ( services_discovery_t * )p_this; services_discovery_sys_t *p_sys; lua_State *L = NULL; - char *psz_name = strdup(p_sd->psz_name); + char *psz_name; - if( !strcmp(p_sd->psz_name, "lua")) + + if( !strcmp(vlc_sd_GetName(p_sd), "lua")) { // We want to load the module name "lua" // This module can be used to load lua script not registered // as builtin lua SD modules. - config_ChainParse( p_sd, "lua-", ppsz_sd_options, p_sd->p_cfg ); + config_ChainParse( p_sd, "lua-", ppsz_sd_options, vlc_sd_GetConfigChain(p_sd) ); psz_name = var_CreateGetString( p_sd, "lua-sd" ); } else { // We are loading a builtin lua sd module. - psz_name = strdup(p_sd->psz_name); + psz_name = strdup(vlc_sd_GetName(p_sd)); } if( !( p_sys = malloc( sizeof( services_discovery_sys_t ) ) ) ) diff --git a/src/libvlccore.sym b/src/libvlccore.sym index 85da6f3eb3..6bdedcad3d 100644 --- a/src/libvlccore.sym +++ b/src/libvlccore.sym @@ -563,6 +563,8 @@ vlc_rwlock_wrlock vlc_savecancel vlc_sd_Create vlc_sd_Destroy +vlc_sd_GetConfigChain +vlc_sd_GetName vlc_sd_GetNames vlc_sd_probe_Add vlc_sdp_Start diff --git a/src/playlist/services_discovery.c b/src/playlist/services_discovery.c index c9f9aff437..3040d6c658 100644 --- a/src/playlist/services_discovery.c +++ b/src/playlist/services_discovery.c @@ -185,6 +185,20 @@ void vlc_sd_Destroy( services_discovery_t *p_sd ) vlc_object_release( p_sd ); } +/*********************************************************************** + * Getters + ***********************************************************************/ + +const char *vlc_sd_GetName( services_discovery_t *p_sd ) +{ + return p_sd->p->psz_name; +} + +config_chain_t *vlc_sd_GetConfigChain( services_discovery_t *p_sd ) +{ + return p_sd->p->p_cfg; +} + /*********************************************************************** * Destructor ***********************************************************************/ -- 2.39.2