diff options
Diffstat (limited to 'src/lua/common/je_lua_reference.cpp')
-rw-r--r-- | src/lua/common/je_lua_reference.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
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); } } |