Initial Commit

This commit is contained in:
2026-02-12 11:46:06 +03:00
commit b044c8d1a5
3973 changed files with 1599881 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
///////////////////////////////////////////////////////////////////////////////
// This source file is part of the LuaPlus source distribution and is Copyright
// 2001-2011 by Joshua C. Jensen (jjensen@workspacewhiz.com).
//
// The latest version may be obtained from http://luaplus.org/.
//
// The code presented in this file may be used in any environment it is
// acceptable to use Lua.
///////////////////////////////////////////////////////////////////////////////
#ifndef LUAPLUS__LUAAUTOBLOCK_H
#define LUAPLUS__LUAAUTOBLOCK_H
#include "LuaPlusInternal.h"
///////////////////////////////////////////////////////////////////////////////
// namespace LuaPlus
///////////////////////////////////////////////////////////////////////////////
namespace LuaPlus {
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
/**
A helper class for automatically setting the stack state back to point of
LuaAutoBlock creation.
**/
class LuaAutoBlock {
public:
LuaAutoBlock(LuaState* state)
: L(LuaState_to_lua_State(state))
, stackTop(lua_gettop(L)) {
}
LuaAutoBlock(lua_State* L_)
: L(L_)
, stackTop(lua_gettop(L)) {
}
LuaAutoBlock(LuaStackObject& object)
: L(object.GetCState())
, stackTop(lua_gettop(L)) {
}
~LuaAutoBlock() {
lua_settop(L, stackTop);
}
private:
LuaAutoBlock(const LuaAutoBlock& src); // Not implemented
const LuaAutoBlock& operator=(const LuaAutoBlock& src); // Not implemented
lua_State* L;
int stackTop;
};
} // namespace LuaPlus
#endif // LUAPLUS__LUAAUTOBLOCK_H