Initial Commit
This commit is contained in:
58
thirdparty/luaplus/Src/LuaPlus/LuaAutoBlock.h
vendored
Normal file
58
thirdparty/luaplus/Src/LuaPlus/LuaAutoBlock.h
vendored
Normal 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
|
||||
Reference in New Issue
Block a user