diff options
Diffstat (limited to 'source/3rd-party/Luax/luax_ref.cpp')
-rw-r--r-- | source/3rd-party/Luax/luax_ref.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/source/3rd-party/Luax/luax_ref.cpp b/source/3rd-party/Luax/luax_ref.cpp index 544861d..78596e3 100644 --- a/source/3rd-party/Luax/luax_ref.cpp +++ b/source/3rd-party/Luax/luax_ref.cpp @@ -1,4 +1,4 @@ -#include "luax_runtime.h" +#include "luax_vm.h" #include "luax_ref.h" namespace Luax @@ -23,16 +23,16 @@ namespace Luax { assert(mRefID != LUA_NOREF); - LuaxRuntime& runtime = LuaxRuntime::Get(); - + LuaxVM* vm = LuaxVM::TryGetVM(state); + if (!vm) return false; if (mMode == STRONG_REF) { - LuaxRefTable& table = runtime[state.GetHandle()].strongRefTable; + LuaxRefTable& table = vm->GetStrongRefTable(); table.PushRef(state, mRefID); } else if (mMode == WEAK_REF) { - LuaxRefTable& table = runtime[state.GetHandle()].weakRefTable; + LuaxRefTable& table = vm->GetWeakRefTable(); table.PushRef(state, mRefID); } else @@ -43,15 +43,16 @@ namespace Luax void LuaxRef::SetRef(LuaxState& state, int idx) { - LuaxRuntime& runtime = LuaxRuntime::Get(); + LuaxVM* vm = LuaxVM::TryGetVM(state); + if (!vm) return; if (mMode == STRONG_REF) { - LuaxRefTable& table = runtime[state.GetHandle()].strongRefTable; + LuaxRefTable& table = vm->GetStrongRefTable(); mRefID = table.Ref(state, idx); } else if (mMode == WEAK_REF) { - LuaxRefTable& table = runtime[state.GetHandle()].weakRefTable; + LuaxRefTable& table = vm->GetWeakRefTable(); mRefID = table.Ref(state, idx); } } |