From 7a20483f06624e82feb129c9e4c8fa13881a6a9f Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 22 Nov 2018 12:23:12 +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/common/je_lua_reference.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src/lua/common/je_lua_reference.cpp') diff --git a/src/lua/common/je_lua_reference.cpp b/src/lua/common/je_lua_reference.cpp index 05dc82b..37ed441 100644 --- a/src/lua/common/je_lua_reference.cpp +++ b/src/lua/common/je_lua_reference.cpp @@ -1,7 +1,6 @@ -#include "je_lua_reference.h" +#include "common/je_lua.h" -#include "LuaJIT/lua.hpp" -#include "libraries/luax/luax.h" +#include "je_lua_reference.h" namespace JinEngine { @@ -12,7 +11,10 @@ namespace JinEngine : mL(L) { luax_pushvalue(mL, i); - mIndex = luax_ref(mL, LUA_REGISTRYINDEX); + luax_getreferencestable(L); + luax_pushvalue(mL, -2); + mIndex = luax_ref(mL, -2); + luax_pop(L, 3); } LuaRef::~LuaRef() @@ -22,12 +24,16 @@ namespace JinEngine void LuaRef::unref() { - luax_unref(mL, LUA_REGISTRYINDEX, mIndex); + luax_getreferencestable(mL); + luax_unref(mL, -1, mIndex); + luax_pop(mL, 1); } void LuaRef::push() { - luax_rawgeti(mL, LUA_REGISTRYINDEX, mIndex); + luax_getreferencestable(mL); + luax_rawgeti(mL, -1, mIndex); + luax_remove(mL, -2); } } -- cgit v1.1-26-g67d0