diff --git a/include/Nazara/Lua/LuaInstance.inl b/include/Nazara/Lua/LuaInstance.inl index 7ae8a7a88..32103afe3 100644 --- a/include/Nazara/Lua/LuaInstance.inl +++ b/include/Nazara/Lua/LuaInstance.inl @@ -329,6 +329,12 @@ namespace Nz { NazaraUnused(instance); + if (!object) + { + instance.Error("Invalid object"); + return 0; + } + Apply(*object, func, m_args); return 0; } @@ -336,6 +342,12 @@ namespace Nz template std::enable_if_t::type>::value, int> Invoke(const LuaInstance& instance, T& object, Ret(P::*func)(Args...)) const { + if (!object) + { + instance.Error("Invalid object"); + return 0; + } + return LuaImplReplyVal(instance, std::move(Apply(*object, func, m_args)), TypeTag()); } @@ -344,6 +356,12 @@ namespace Nz { NazaraUnused(instance); + if (!object) + { + instance.Error("Invalid object"); + return 0; + } + Apply(*object, func, m_args); return 0; } @@ -351,6 +369,12 @@ namespace Nz template std::enable_if_t::type>::value, int> Invoke(const LuaInstance& instance, const T& object, Ret(P::*func)(Args...) const) const { + if (!object) + { + instance.Error("Invalid object"); + return 0; + } + return LuaImplReplyVal(instance, std::move(Apply(*object, func, m_args)), TypeTag()); }