summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpsi29a <psi29a@gmail.com>2023-08-21 09:25:30 +0000
committerpsi29a <psi29a@gmail.com>2023-08-21 09:25:50 +2202
commita63d7e473eef5be221ad5e036f23bbb36c6dca10 (patch)
treeafb9ad424e1090315f1f5b2f099df07d01ed57b1
parent81ab0feb2ec2fda488eec043f6fa3d9b020f1521 (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.cpp11
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)