]> git.sesse.net Git - vlc/commitdiff
lua: factorize the right way.
authorRémi Duraffort <ivoire@videolan.org>
Wed, 29 Sep 2010 19:26:13 +0000 (21:26 +0200)
committerRémi Duraffort <ivoire@videolan.org>
Wed, 29 Sep 2010 19:26:13 +0000 (21:26 +0200)
modules/misc/lua/extension.c
modules/misc/lua/vlc.h

index fe4e2f2ce98ccc964e39a8d2e435624f931ba353..745350fdeeb7b2d6363c8c784f1a3e244e6bab6f 100644 (file)
@@ -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
index ff3d4da6eb58a97f5772fb04725e81e0880a4c32..d3187e76beb4ab2b32959e4a4668fde3a8cbc20a 100644 (file)
@@ -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 * );