aboutsummaryrefslogtreecommitdiff
path: root/src/lua/common/je_lua_reference.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lua/common/je_lua_reference.cpp')
-rw-r--r--src/lua/common/je_lua_reference.cpp18
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);
}
}