From 8d4e45c9a85175d0fc37d7d5c49ff90abb01fe4f Mon Sep 17 00:00:00 2001 From: chai Date: Fri, 23 Nov 2018 12:24:22 +0800 Subject: =?UTF-8?q?*=E4=BF=AE=E6=94=B9lua=20bind?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lua/jin.cpp | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) (limited to 'src/lua/jin.cpp') diff --git a/src/lua/jin.cpp b/src/lua/jin.cpp index 39291ac..87e7bac 100644 --- a/src/lua/jin.cpp +++ b/src/lua/jin.cpp @@ -53,10 +53,10 @@ namespace JinEngine } LUA_IMPLEMENT const luax_Str s[] = { - { "version", VERSION }, - { "author", AUTHOR }, - { "codename", CODE_NAME }, - { 0, 0 } + { "version", VERSION }, + { "author", AUTHOR }, + { "codename", CODE_NAME }, + { 0, 0 } }; LUA_IMPLEMENT const luax_Num n[] = { @@ -64,11 +64,9 @@ namespace JinEngine { 0, 0 } }; - /* register jin module, keep it on the top of stack */ - LUA_EXPORT int luaopen_jin(lua_State* L) + // Register jin module, keep it on the top of stack. + LUA_EXPORT void open(lua_State* L) { - LuaState::set(L); - luax_globaltable(L, MODULE_NAME); // Register values. @@ -100,11 +98,17 @@ namespace JinEngine luax_setfield(L, -2, modules[i].name); } - return 1; + // Pop jin table. + luax_pop(L, 1); } - LUA_EXPORT void boot(lua_State* L) + LUA_EXPORT void boot(lua_State* L, const char* cwd) { + luax_getglobal(L, MODULE_NAME); + luax_newtable(L); + luax_setfieldstring(L, "cwd", cwd); + luax_setfield(L, -2, "args"); + luax_clearstack(L); JinEngine::Embed::boot(L); } -- cgit v1.1-26-g67d0