From c04668ad5effb61eda668b293aa9aa8e161d369e Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Duraffort?= Date: Wed, 29 Sep 2010 21:26:13 +0200 Subject: [PATCH] lua: factorize the right way. --- modules/misc/lua/extension.c | 45 ++++-------------------------------- modules/misc/lua/vlc.h | 7 ++++++ 2 files changed, 12 insertions(+), 40 deletions(-) diff --git a/modules/misc/lua/extension.c b/modules/misc/lua/extension.c index fe4e2f2ce9..745350fdee 100644 --- a/modules/misc/lua/extension.c +++ b/modules/misc/lua/extension.c @@ -341,62 +341,27 @@ int ScanLuaCallback( vlc_object_t *p_this, const char *psz_script, /* Get author */ lua_getfield( L, -1, "author" ); - if( lua_isstring( L, -1 ) ) - { - p_ext->psz_author = strdup( luaL_checkstring( L, -1 ) ); - } - else - { - p_ext->psz_author = NULL; - } + p_ext->psz_author = luaL_strdupornull( L, -1 ); lua_pop( L, 1 ); /* Get description */ lua_getfield( L, -1, "description" ); - if( lua_isstring( L, -1 ) ) - { - p_ext->psz_description = strdup( luaL_checkstring( L, -1 ) ); - } - else - { - p_ext->psz_description = NULL; - } + p_ext->psz_description = luaL_strdupornull( L, -1 ); lua_pop( L, 1 ); /* Get short description */ lua_getfield( L, -1, "shortdesc" ); - if( lua_isstring( L, -1 ) ) - { - p_ext->psz_shortdescription = strdup( luaL_checkstring( L, -1 ) ); - } - else - { - p_ext->psz_shortdescription = NULL; - } + p_ext->psz_shortdescription = luaL_strdupornull( L, -1 ); lua_pop( L, 1 ); /* Get URL */ lua_getfield( L, -1, "url" ); - if( lua_isstring( L, -1 ) ) - { - p_ext->psz_url = strdup( luaL_checkstring( L, -1 ) ); - } - else - { - p_ext->psz_url = NULL; - } + p_ext->psz_url = luaL_strdupornull( L, -1 ); lua_pop( L, 1 ); /* Get version */ lua_getfield( L, -1, "version" ); - if( lua_isstring( L, -1 ) ) - { - p_ext->psz_version = strdup( luaL_checkstring( L, -1 ) ); - } - else - { - p_ext->psz_version = NULL; - } + p_ext->psz_version = luaL_strdupornull( L, -1 ); lua_pop( L, 1 ); } else diff --git a/modules/misc/lua/vlc.h b/modules/misc/lua/vlc.h index ff3d4da6eb..d3187e76be 100644 --- a/modules/misc/lua/vlc.h +++ b/modules/misc/lua/vlc.h @@ -91,6 +91,13 @@ static inline const char *luaL_nilorcheckstring( lua_State *L, int narg ) return luaL_checkstring( L, narg ); } +static inline char *luaL_strdupornull( lua_State *L, int narg ) +{ + if( lua_isstring( L, narg ) ) + return strdup( luaL_checkstring( L, narg ) ); + return NULL; +} + void vlclua_set_this( lua_State *, vlc_object_t * ); #define vlclua_set_this(a, b) vlclua_set_this(a, VLC_OBJECT(b)) vlc_object_t * vlclua_get_this( lua_State * ); -- 2.39.2