diff options
author | Rainer Jung <rjung@apache.org> | 2017-07-04 22:35:06 +0200 |
---|---|---|
committer | Rainer Jung <rjung@apache.org> | 2017-07-04 22:35:06 +0200 |
commit | d98ec3b059593d2022c553c4a01280ba07f6af23 (patch) | |
tree | 60f8f82d5a744a7e71fd3d10bc43df4e07f10193 | |
parent | mod_lua: Improve compatibility with Lua 5.1, 5.2 and 5.3. (diff) | |
download | apache2-d98ec3b059593d2022c553c4a01280ba07f6af23.tar.xz apache2-d98ec3b059593d2022c553c4a01280ba07f6af23.zip |
More mod_lua compat for Lua 5.1, 5.2, 5.3.
One last use of luaL_register() with a non-NULL
"name" argument remaining.
Not tested yet.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1800815 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | modules/lua/README | 6 | ||||
-rw-r--r-- | modules/lua/lua_config.c | 4 | ||||
-rw-r--r-- | modules/lua/lua_request.c | 6 | ||||
-rw-r--r-- | modules/lua/mod_lua.c | 4 | ||||
-rw-r--r-- | modules/lua/mod_lua.h | 20 |
5 files changed, 19 insertions, 21 deletions
diff --git a/modules/lua/README b/modules/lua/README index e6aae86e19..3dd68a0816 100644 --- a/modules/lua/README +++ b/modules/lua/README @@ -1,7 +1,6 @@ -*- mode:org -*- * Requirements: -** lua 5.1, 5.2 ( http://www.lua.org/ ) or LuaJIT 2.x ( http://www.luajit.org/ ) -** Does NOT work with Lua 5.3 yet +** lua 5.1, 5.2, 5.3 ( http://www.lua.org/ ) or LuaJIT 2.x ( http://www.luajit.org/ ) ** Apache HTTPD 2.4 ( http://httpd.apache.org/ ) or higher * Documentation @@ -24,6 +23,9 @@ ** TODO: document or remove block sections ** TODO: test per-dir behavior of block sections ** TODO: Suppress internal details (fs path to scripts, etc) in error responses +** TODO: Check whether we can tighten the mode flag in lua_load(), + luaL_loadfile() an dluaL_loadbuffer() from NULL (="bt") + to e.g. "t". * License Apache License, Version 2.0, diff --git a/modules/lua/lua_config.c b/modules/lua/lua_config.c index bc09bdcffb..3783b51867 100644 --- a/modules/lua/lua_config.c +++ b/modules/lua/lua_config.c @@ -265,13 +265,13 @@ void ap_lua_load_config_lmodule(lua_State *L) lua_pushvalue(L, -1); lua_setfield(L, -2, "__index"); - luaL_register(L, NULL, cfg_methods); /* [metatable] */ + luaL_setfuncs(L, cfg_methods); /* [metatable] */ luaL_newmetatable(L, "Apache2.CommandParameters"); lua_pushvalue(L, -1); lua_setfield(L, -2, "__index"); - luaL_register(L, NULL, cmd_methods); /* [metatable] */ + luaL_setfuncs(L, cmd_methods); /* [metatable] */ } diff --git a/modules/lua/lua_request.c b/modules/lua/lua_request.c index 9a04968b85..5e5a30d93f 100644 --- a/modules/lua/lua_request.c +++ b/modules/lua/lua_request.c @@ -2959,7 +2959,7 @@ void ap_lua_load_request_lmodule(lua_State *L, apr_pool_t *p) lua_pushvalue(L, -1); lua_setfield(L, -2, "__index"); - luaL_register(L, NULL, request_methods); /* [metatable] */ + luaL_setfuncs(L, request_methods); /* [metatable] */ lua_pop(L, 2); @@ -2967,7 +2967,7 @@ void ap_lua_load_request_lmodule(lua_State *L, apr_pool_t *p) lua_pushvalue(L, -1); lua_setfield(L, -2, "__index"); - luaL_register(L, NULL, connection_methods); /* [metatable] */ + luaL_setfuncs(L, connection_methods); /* [metatable] */ lua_pop(L, 2); @@ -2975,7 +2975,7 @@ void ap_lua_load_request_lmodule(lua_State *L, apr_pool_t *p) lua_pushvalue(L, -1); lua_setfield(L, -2, "__index"); - luaL_register(L, NULL, server_methods); /* [metatable] */ + luaL_setfuncs(L, server_methods); /* [metatable] */ lua_pop(L, 2); diff --git a/modules/lua/mod_lua.c b/modules/lua/mod_lua.c index 99c9d4a91e..6d79199595 100644 --- a/modules/lua/mod_lua.c +++ b/modules/lua/mod_lua.c @@ -1080,11 +1080,7 @@ static const char *register_named_block_function_hook(const char *name, else { luaL_Buffer b; luaL_buffinit(lvm, &b); -#if LUA_VERSION_NUM >= 503 - lua_dump(lvm, ldump_writer, &b, 0); -#else lua_dump(lvm, ldump_writer, &b); -#endif luaL_pushresult(&b); spec->bytecode_len = lua_rawlen(lvm, -1); spec->bytecode = apr_pstrmemdup(cmd->pool, lua_tostring(lvm, -1), diff --git a/modules/lua/mod_lua.h b/modules/lua/mod_lua.h index cd2025b1b7..1e2e71d400 100644 --- a/modules/lua/mod_lua.h +++ b/modules/lua/mod_lua.h @@ -41,23 +41,23 @@ #include "apr_hooks.h" #include "apr_reslist.h" -/* Allow for Lua 5.2 backwards compatibility */ -#define LUA_COMPAT_ALL -/* Allow for Lua 5.3 backwards compatibility */ -#define LUA_COMPAT_5_2 -#define LUA_COMPAT_5_1 -#define LUA_COMPAT_MODULE - #include "lua.h" #include "lauxlib.h" #include "lualib.h" #if LUA_VERSION_NUM > 501 /* Load mode for lua_load() */ -#define lua_load(a,b,c,d) lua_load(a,b,c,d,NULL) -#define lua_resume(a,b) lua_resume(a, NULL, b) +#define lua_load(a,b,c,d) lua_load(a,b,c,d,NULL) +#define lua_resume(a,b) lua_resume(a, NULL, b) +#define luaL_loadfile(a,b) luaL_loadfilex(a,b,NULL) +#define luaL_loadbuffer(a,b,c,d) luaL_loadbufferx(a,b,c,d,NULL) +#define luaL_setfuncs(a,b) luaL_setfuncs(a,b,0) #else -#define lua_rawlen(L,i) lua_objlen(L, (i)) +#define lua_rawlen(L,i) lua_objlen(L, (i)) +#define luaL_setfuncs(a,b) luaL_register(a,NULL,b) +#endif +#if LUA_VERSION_NUM > 502 +#define lua_dump(a,b,c,d) lua_dump(a,b,c,d,0) #endif /* Create a set of AP_LUA_DECLARE(type), AP_LUA_DECLARE_NONSTD(type) and |