Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Eisel <julian@blender.org>2020-09-28 13:04:39 +0300
committerJulian Eisel <julian@blender.org>2020-09-28 13:06:59 +0300
commitf7655dd322dd64d2a007857d2aff7d76bd86b60a (patch)
tree1e614ee46f3ac1b55df31d38e3b496724e7689c8 /source/blender/editors/interface/interface_layout.c
parent825a32439aae577afd424fba48094cb8f92d2541 (diff)
UI Code Quality: Clear layout pointer on layout destruction
The layout pointer is quite ugly, but currently needed to work around design issues. At least it should be cleared to avoid use-after-free.
Diffstat (limited to 'source/blender/editors/interface/interface_layout.c')
-rw-r--r--source/blender/editors/interface/interface_layout.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c
index 23f29760a5e..ac1b9a972f0 100644
--- a/source/blender/editors/interface/interface_layout.c
+++ b/source/blender/editors/interface/interface_layout.c
@@ -5586,6 +5586,9 @@ static void ui_layout_free(uiLayout *layout)
{
LISTBASE_FOREACH_MUTABLE (uiItem *, item, &layout->items) {
if (item->type == ITEM_BUTTON) {
+ uiButtonItem *bitem = (uiButtonItem *)item;
+
+ bitem->but->layout = NULL;
MEM_freeN(item);
}
else {