From a63d7e473eef5be221ad5e036f23bbb36c6dca10 Mon Sep 17 00:00:00 2001 From: psi29a Date: Mon, 21 Aug 2023 09:25:30 +0000 Subject: [PATCH] Merge branch 'crash_temporary_ui_element' into 'master' Fix crash #7469 See merge request OpenMW/openmw!3367 (cherry picked from commit 42469c4b54f08c314ebe8076d316e9b7c708788f) e1cbeb0d Don't free ui element's shared_ptr right before destroying it --- components/lua_ui/element.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/components/lua_ui/element.cpp b/components/lua_ui/element.cpp index 273730c962..2cb5a35973 100644 --- a/components/lua_ui/element.cpp +++ b/components/lua_ui/element.cpp @@ -217,12 +217,13 @@ namespace LuaUi void Element::destroy() { + if (mRoot) + { + destroyWidget(mRoot); + mRoot = nullptr; + mLayout = sol::make_object(mLayout.lua_state(), sol::nil); + } sAllElements.erase(this); - if (!mRoot) - return; - destroyWidget(mRoot); - mRoot = nullptr; - mLayout = sol::make_object(mLayout.lua_state(), sol::nil); } void Element::attachToWidget(WidgetExtension* w)