summaryrefslogtreecommitdiff
path: root/Source/3rdParty/Luax/luax_state.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/3rdParty/Luax/luax_state.cpp')
-rw-r--r--Source/3rdParty/Luax/luax_state.cpp26
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);