summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorruki <[email protected]>2025-02-06 23:00:01 +0800
committerruki <[email protected]>2025-02-06 23:00:01 +0800
commitd0425ec0b0126b02c6c03b7db52372109157335b (patch)
tree6c58a1d48191d17e0a1665b4d9e378c7968b9363 /core
parent48850b4c5a6c1022d3ea9e65d1904f59b45001f4 (diff)
fix register lua funcs
Diffstat (limited to 'core')
-rw-r--r--core/src/xmake/prefix.h19
1 files changed, 13 insertions, 6 deletions
diff --git a/core/src/xmake/prefix.h b/core/src/xmake/prefix.h
index 5d6fba582..3c5c0679f 100644
--- a/core/src/xmake/prefix.h
+++ b/core/src/xmake/prefix.h
@@ -117,14 +117,21 @@ static __tb_inline__ tb_pointer_t xm_lua_topointer(lua_State* lua, tb_int_t idx)
static __tb_inline__ tb_void_t xm_lua_register(lua_State *lua, tb_char_t const* libname, luaL_Reg const* l)
{
#if LUA_VERSION_NUM >= 504
- lua_getglobal(lua, libname);
- if (lua_isnil(lua, -1))
+ if (libname)
{
- lua_pop(lua, 1);
- lua_newtable(lua);
+ lua_getglobal(lua, libname);
+ if (lua_isnil(lua, -1))
+ {
+ lua_pop(lua, 1);
+ lua_newtable(lua);
+ }
+ luaL_setfuncs(lua, l, 0);
+ lua_setglobal(lua, libname);
+ }
+ else
+ {
+ luaL_setfuncs(lua, l, 0);
}
- luaL_setfuncs(lua, l, 0);
- lua_setglobal(lua, libname);
#else
luaL_register(lua, libname, l);
#endif