diff options
Diffstat (limited to 'Source/3rdParty/Luax/luax_state.cpp')
-rw-r--r-- | Source/3rdParty/Luax/luax_state.cpp | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/Source/3rdParty/Luax/luax_state.cpp b/Source/3rdParty/Luax/luax_state.cpp index a92d697..87c3bcd 100644 --- a/Source/3rdParty/Luax/luax_state.cpp +++ b/Source/3rdParty/Luax/luax_state.cpp @@ -11,6 +11,12 @@ namespace Luax assert(state); } + LuaxState::LuaxState(const LuaxState& state) + : L(state.mState) + { + assert(state.mState); + } + LuaxState::~LuaxState() { } @@ -35,6 +41,11 @@ namespace Luax return *L; } + lua_State* LuaxState::GetHandle() + { + return L; + } + void LuaxState::OpenLibs() { luaL_openlibs(L); @@ -72,8 +83,14 @@ namespace Luax int LuaxState::AbsIndex(int idx) { +/* +#define abs_index(L, i) ((i) > 0 || (i) <= LUA_REGISTRYINDEX ? (i) : \ + lua_gettop(L) + (i) + 1) +*/ if (idx < 0) { - return lua_gettop(L) + idx + 1; + //return lua_gettop(L) + idx + 1; + return ((idx) > 0 || (idx) <= LUA_REGISTRYINDEX ? (idx) : \ + lua_gettop(L) + (idx)+1); } return idx; } @@ -83,7 +100,7 @@ namespace Luax return 0; } - void LuaxState::Push() + void LuaxState::PushNil() { lua_pushnil(L); } @@ -153,6 +170,11 @@ namespace Luax lua_pop(L, n); } + void LuaxState::Settop(int idx) + { + lua_settop(L, idx); + } + bool LuaxState::IsNil(int idx) { return lua_isnil(L, idx); |