diff options
Diffstat (limited to 'source/3rd-party/Luax/luax_runtime.cpp')
-rw-r--r-- | source/3rd-party/Luax/luax_runtime.cpp | 36 |
1 files changed, 22 insertions, 14 deletions
diff --git a/source/3rd-party/Luax/luax_runtime.cpp b/source/3rd-party/Luax/luax_runtime.cpp index b45d36a..dcf7b92 100644 --- a/source/3rd-party/Luax/luax_runtime.cpp +++ b/source/3rd-party/Luax/luax_runtime.cpp @@ -27,61 +27,69 @@ namespace Luax assert(L); // 1) - mContexts.insert(pair<lua_State*, LuaxContext>(L, LuaxContext(L))); + mContexts.insert(pair<lua_State*, LuaxVM*>(L, new LuaxVM(L))); // 2) ʼcontext (*this)[L].Setup(); return L; } - +/* + lua_State* LuaxRuntime::CreateThread(lua_State* main) + { + lua_State* thread = lua_newthread(main); + mContexts.insert(pair<lua_State*, LuaxVM*>(thread, mContexts[main])); + return thread; + } +*/ void LuaxRuntime::Close(lua_State* L) { - map<lua_State*, LuaxContext>::iterator it = mContexts.find(L); + map<lua_State*, LuaxVM*>::iterator it = mContexts.find(L); if (it != mContexts.end()) { - lua_close(it->second.state); + lua_close(it->second->state); mContexts.erase(it); } } bool LuaxRuntime::HasLuaxState(lua_State* L) { - map<lua_State*, LuaxContext>::iterator it = mContexts.find(L); + map<lua_State*, LuaxVM*>::iterator it = mContexts.find(L); return it != mContexts.end(); } LuaxState& LuaxRuntime::GetLuaxState(lua_State* L) { - map<lua_State*, LuaxContext>::iterator it = mContexts.find(L); + map<lua_State*, LuaxVM*>::iterator it = mContexts.find(L); if (it != mContexts.end()) { - return it->second.state; + return it->second->state; } } LuaxRefTable& LuaxRuntime::GetStrongRefTable(lua_State* L) { - map<lua_State*, LuaxContext>::iterator it = mContexts.find(L); + map<lua_State*, LuaxVM*>::iterator it = mContexts.find(L); if (it != mContexts.end()) { - return it->second.strongRefTable; + return it->second->strongRefTable; } } LuaxRefTable& LuaxRuntime::GetWeaksRefTable(lua_State* L) { - map<lua_State*, LuaxContext>::iterator it = mContexts.find(L); + map<lua_State*, LuaxVM*>::iterator it = mContexts.find(L); if (it != mContexts.end()) { - return it->second.weakRefTable; + return it->second->weakRefTable; } } - LuaxContext& LuaxRuntime::operator[](lua_State* L) + LuaxVM& LuaxRuntime::operator[](lua_State* L) { - map<lua_State*, LuaxContext>::iterator it = mContexts.find(L); + map<lua_State*, LuaxVM*>::iterator it = mContexts.find(L); assert(it != mContexts.end()); - return it->second; + + return *it->second; } } |