diff options
Diffstat (limited to 'source/core')
-rw-r--r-- | source/core/StarLua.cpp | 4 | ||||
-rw-r--r-- | source/core/StarLua.hpp | 1 |
2 files changed, 4 insertions, 1 deletions
diff --git a/source/core/StarLua.cpp b/source/core/StarLua.cpp index 91aebab..201f238 100644 --- a/source/core/StarLua.cpp +++ b/source/core/StarLua.cpp @@ -125,7 +125,9 @@ LuaTable LuaContext::createTable() { LuaNullEnforcer::LuaNullEnforcer(LuaEngine& engine) : m_engine(&engine) { ++m_engine->m_nullTerminated; }; -LuaNullEnforcer::~LuaNullEnforcer() { --m_engine->m_nullTerminated; }; +LuaNullEnforcer::LuaNullEnforcer(LuaNullEnforcer&& other) { m_engine = take(other.m_engine); }; + +LuaNullEnforcer::~LuaNullEnforcer() { if (m_engine) --m_engine->m_nullTerminated; }; LuaValue LuaConverter<Json>::from(LuaEngine& engine, Json const& v) { if (v.isType(Json::Type::Null)) { diff --git a/source/core/StarLua.hpp b/source/core/StarLua.hpp index fa777c2..1f0dc43 100644 --- a/source/core/StarLua.hpp +++ b/source/core/StarLua.hpp @@ -414,6 +414,7 @@ struct LuaNullTermWrapper : T { class LuaNullEnforcer { public: LuaNullEnforcer(LuaEngine& engine); + LuaNullEnforcer(LuaNullEnforcer&&); ~LuaNullEnforcer(); private: LuaEngine* m_engine; |