Commit c04668ad authored by Rémi Duraffort's avatar Rémi Duraffort

lua: factorize the right way.

parent b318bfb3
...@@ -341,62 +341,27 @@ int ScanLuaCallback( vlc_object_t *p_this, const char *psz_script, ...@@ -341,62 +341,27 @@ int ScanLuaCallback( vlc_object_t *p_this, const char *psz_script,
/* Get author */ /* Get author */
lua_getfield( L, -1, "author" ); lua_getfield( L, -1, "author" );
if( lua_isstring( L, -1 ) ) p_ext->psz_author = luaL_strdupornull( L, -1 );
{
p_ext->psz_author = strdup( luaL_checkstring( L, -1 ) );
}
else
{
p_ext->psz_author = NULL;
}
lua_pop( L, 1 ); lua_pop( L, 1 );
/* Get description */ /* Get description */
lua_getfield( L, -1, "description" ); lua_getfield( L, -1, "description" );
if( lua_isstring( L, -1 ) ) p_ext->psz_description = luaL_strdupornull( L, -1 );
{
p_ext->psz_description = strdup( luaL_checkstring( L, -1 ) );
}
else
{
p_ext->psz_description = NULL;
}
lua_pop( L, 1 ); lua_pop( L, 1 );
/* Get short description */ /* Get short description */
lua_getfield( L, -1, "shortdesc" ); lua_getfield( L, -1, "shortdesc" );
if( lua_isstring( L, -1 ) ) p_ext->psz_shortdescription = luaL_strdupornull( L, -1 );
{
p_ext->psz_shortdescription = strdup( luaL_checkstring( L, -1 ) );
}
else
{
p_ext->psz_shortdescription = NULL;
}
lua_pop( L, 1 ); lua_pop( L, 1 );
/* Get URL */ /* Get URL */
lua_getfield( L, -1, "url" ); lua_getfield( L, -1, "url" );
if( lua_isstring( L, -1 ) ) p_ext->psz_url = luaL_strdupornull( L, -1 );
{
p_ext->psz_url = strdup( luaL_checkstring( L, -1 ) );
}
else
{
p_ext->psz_url = NULL;
}
lua_pop( L, 1 ); lua_pop( L, 1 );
/* Get version */ /* Get version */
lua_getfield( L, -1, "version" ); lua_getfield( L, -1, "version" );
if( lua_isstring( L, -1 ) ) p_ext->psz_version = luaL_strdupornull( L, -1 );
{
p_ext->psz_version = strdup( luaL_checkstring( L, -1 ) );
}
else
{
p_ext->psz_version = NULL;
}
lua_pop( L, 1 ); lua_pop( L, 1 );
} }
else else
......
...@@ -91,6 +91,13 @@ static inline const char *luaL_nilorcheckstring( lua_State *L, int narg ) ...@@ -91,6 +91,13 @@ static inline const char *luaL_nilorcheckstring( lua_State *L, int narg )
return luaL_checkstring( L, 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 * ); void vlclua_set_this( lua_State *, vlc_object_t * );
#define vlclua_set_this(a, b) vlclua_set_this(a, VLC_OBJECT(b)) #define vlclua_set_this(a, b) vlclua_set_this(a, VLC_OBJECT(b))
vlc_object_t * vlclua_get_this( lua_State * ); vlc_object_t * vlclua_get_this( lua_State * );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment