From 1e67a579fda8e9b788f51feb241e007ce28d1725 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tam=C3=A1s=20B=C3=A1lint=20Misius?= Date: Mon, 4 Jan 2021 21:33:23 +0100 Subject: [PATCH] Fix crash when the constructor of a LuaComponent derivative fails The interface API is a mess, hopefully not for long. --- src/lua/LuaComponent.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lua/LuaComponent.cpp b/src/lua/LuaComponent.cpp index 0c1e5954d..dc2305079 100644 --- a/src/lua/LuaComponent.cpp +++ b/src/lua/LuaComponent.cpp @@ -18,7 +18,7 @@ int LuaComponentCallback::CheckAndAssignArg1(lua_State *l) return 0; } -LuaComponent::LuaComponent(lua_State * l) : owner_ref(LUA_REFNIL) +LuaComponent::LuaComponent(lua_State * l) : component(nullptr), owner_ref(LUA_REFNIL) { this->l = l; // I don't get how this doesn't cause crashes later on @@ -83,7 +83,7 @@ int LuaComponent::visible(lua_State * l) LuaComponent::~LuaComponent() { - if(component->GetParentWindow()) + if(component && component->GetParentWindow()) component->GetParentWindow()->RemoveComponent(component); delete component; }