[vlc-commits] commit: lua: factorize the right way. ( Rémi Duraffort )
git at videolan.org
git at videolan.org
Wed Sep 29 21:26:28 CEST 2010
vlc | branch: master | Rémi Duraffort <ivoire at videolan.org> | Wed Sep 29 21:26:13 2010 +0200| [c04668ad5effb61eda668b293aa9aa8e161d369e] | committer: Rémi Duraffort
lua: factorize the right way.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=c04668ad5effb61eda668b293aa9aa8e161d369e
---
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 fe4e2f2..745350f 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 ff3d4da..d3187e7 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 * );
More information about the vlc-commits
mailing list