diff options
author | psi29a <psi29a@gmail.com> | 2023-08-21 09:25:30 +0000 |
---|---|---|
committer | psi29a <psi29a@gmail.com> | 2023-08-21 09:25:50 +2202 |
commit | a63d7e473eef5be221ad5e036f23bbb36c6dca10 (patch) | |
tree | afb9ad424e1090315f1f5b2f099df07d01ed57b1 | |
parent | 81ab0feb2ec2fda488eec043f6fa3d9b020f1521 (diff) |
Merge branch 'crash_temporary_ui_element' into 'master'openmw-48
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
-rw-r--r-- | components/lua_ui/element.cpp | 11 |
1 files 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) |