Merge branch 'master' into physics3d-material

This commit is contained in:
Lynix 2017-12-16 19:09:13 +01:00
commit 36c1e4e8cb
6 changed files with 35 additions and 25 deletions

View File

@ -22,7 +22,7 @@ namespace Nz
public:
LuaInstance();
LuaInstance(const LuaInstance&) = delete;
LuaInstance(LuaInstance&& instance) = default;
LuaInstance(LuaInstance&& instance);
~LuaInstance();
inline std::size_t GetMemoryLimit() const;
@ -33,7 +33,7 @@ namespace Nz
inline void SetTimeLimit(UInt32 limit);
LuaInstance& operator=(const LuaInstance&) = delete;
LuaInstance& operator=(LuaInstance&& instance) = default;
LuaInstance& operator=(LuaInstance&& instance);
private:
inline void SetMemoryUsage(std::size_t memoryUsage);

View File

@ -30,6 +30,11 @@ namespace Nz
{
m_timeLimit = limit;
}
inline void LuaInstance::SetMemoryUsage(std::size_t memoryUsage)
{
m_memoryUsage = memoryUsage;
}
}
#include <Nazara/Lua/DebugOff.hpp>

View File

@ -8,6 +8,7 @@
#define NAZARA_LUASTATE_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Core/MovablePtr.hpp>
#include <Nazara/Core/String.hpp>
#include <Nazara/Lua/Config.hpp>
#include <Nazara/Lua/Enums.hpp>
@ -32,7 +33,7 @@ namespace Nz
{
public:
LuaState(const LuaState&) = default;
inline LuaState(LuaState&& instance) noexcept;
LuaState(LuaState&& instance) = default;
~LuaState() = default;
void ArgCheck(bool condition, unsigned int argNum, const char* error) const;
@ -173,7 +174,7 @@ namespace Nz
void* ToUserdata(int index, const String& tname) const;
LuaState& operator=(const LuaState&) = default;
inline LuaState& operator=(LuaState&& instance) noexcept;
LuaState& operator=(LuaState&& instance) = default;
static int GetIndexOfUpValue(int upValue);
static LuaInstance& GetInstance(lua_State* internalState);
@ -188,8 +189,8 @@ namespace Nz
static int ProxyFunc(lua_State* internalState);
MovablePtr<lua_State> m_state;
String m_lastError;
lua_State* m_state;
};
}

View File

@ -19,13 +19,6 @@ namespace Nz
{
}
inline LuaState::LuaState(LuaState&& state) noexcept :
m_lastError(state.m_lastError),
m_state(state.m_state)
{
state.m_state = nullptr;
}
inline lua_State* LuaState::GetInternalState() const
{
return m_state;
@ -776,16 +769,6 @@ namespace Nz
SetMetatable(tname);
}
inline LuaState& LuaState::operator=(LuaState&& state) noexcept
{
m_lastError = std::move(state.m_lastError);
m_state = state.m_state;
state.m_state = nullptr;
return *this;
}
template<typename T>
std::enable_if_t<std::is_signed<T>::value, T> LuaState::CheckBounds(int index, long long value) const
{

View File

@ -329,7 +329,7 @@ namespace Nz
ss << "Index out of range: (" << i << " >= " << BoxCorner_Max << ")";
NazaraError(ss);
throw std::out_of_range(ss.ToString());
throw std::out_of_range(ss.ToString().ToStdString());
}
#endif

View File

@ -38,15 +38,36 @@ namespace Nz
luaL_openlibs(m_state);
}
LuaInstance::LuaInstance(LuaInstance&& instance) :
LuaState(std::move(instance)),
m_memoryLimit(std::move(m_memoryLimit)),
m_memoryUsage(std::move(m_memoryUsage)),
m_timeLimit(std::move(m_timeLimit)),
m_clock(std::move(m_clock)),
m_level(std::move(m_level))
{
lua_setallocf(m_state, MemoryAllocator, this);
}
LuaInstance::~LuaInstance()
{
if (m_state)
lua_close(m_state);
}
inline void LuaInstance::SetMemoryUsage(std::size_t memoryUsage)
LuaInstance& LuaInstance::operator=(LuaInstance&& instance)
{
m_memoryUsage = memoryUsage;
LuaState::operator=(std::move(instance));
m_memoryLimit = std::move(instance.m_memoryLimit);
m_memoryUsage = std::move(instance.m_memoryUsage);
m_timeLimit = std::move(instance.m_timeLimit);
m_clock = std::move(instance.m_clock);
m_level = std::move(instance.m_level);
lua_setallocf(m_state, MemoryAllocator, this);
return *this;
}
void* LuaInstance::MemoryAllocator(void* ud, void* ptr, std::size_t osize, std::size_t nsize)