From 489d07de697a411f5a45f1ed0720fb1424a9a98c Mon Sep 17 00:00:00 2001 From: Julian Eisel Date: Tue, 24 Oct 2023 11:48:08 +0200 Subject: [PATCH 1/2] Fix memory leak when renaming node group sockets/panels Steps to reproduce: - Download .blend from #114059 - Edit name of socket or panel in the node interface tree view - Close Blender Pull Request: https://projects.blender.org/blender/blender/pulls/114083 --- .../interface/interface_template_node_tree_interface.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/blender/editors/interface/interface_template_node_tree_interface.cc b/source/blender/editors/interface/interface_template_node_tree_interface.cc index 74a59787c8f..8a178a0cd6f 100644 --- a/source/blender/editors/interface/interface_template_node_tree_interface.cc +++ b/source/blender/editors/interface/interface_template_node_tree_interface.cc @@ -151,6 +151,8 @@ class NodeSocketViewItem : public BasicTreeViewItem { } bool rename(const bContext &C, StringRefNull new_name) override { + MEM_SAFE_FREE(socket_.name); + socket_.name = BLI_strdup(new_name.c_str()); nodetree_.tree_interface.tag_items_changed(); ED_node_tree_propagate_change(&C, CTX_data_main(&C), &nodetree_); @@ -208,6 +210,8 @@ class NodePanelViewItem : public BasicTreeViewItem { } bool rename(const bContext &C, StringRefNull new_name) override { + MEM_SAFE_FREE(panel_.name); + panel_.name = BLI_strdup(new_name.c_str()); nodetree_.tree_interface.tag_items_changed(); ED_node_tree_propagate_change(&C, CTX_data_main(&C), &nodetree_); From a48d4184b52878cf27dcccdb124b7d6fc9b4f3eb Mon Sep 17 00:00:00 2001 From: Philipp Oeser Date: Tue, 24 Oct 2023 13:11:27 +0200 Subject: [PATCH 2/2] Fix #114094: Mask by Color brush has stopped working Caused by 97f2b01ea9. Above commit refactored code in a way that it was always early out (always comparing the current mask value to itself and not the new mask value). Pull Request: https://projects.blender.org/blender/blender/pulls/114101 --- source/blender/editors/sculpt_paint/sculpt_ops.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/blender/editors/sculpt_paint/sculpt_ops.cc b/source/blender/editors/sculpt_paint/sculpt_ops.cc index 43bd0feb146..981b16a22f3 100644 --- a/source/blender/editors/sculpt_paint/sculpt_ops.cc +++ b/source/blender/editors/sculpt_paint/sculpt_ops.cc @@ -748,7 +748,7 @@ static void do_mask_by_color_contiguous_update_node(Object *ob, const float new_mask = mask_by_color_floodfill[vd.index]; const float mask = sculpt_mask_by_color_final_mask_get( current_mask, new_mask, invert, preserve_mask); - if (current_mask == current_mask) { + if (current_mask == mask) { continue; } @@ -861,7 +861,7 @@ static void do_mask_by_color_task(Object *ob, const float new_mask = sculpt_mask_by_color_delta_get(active_color, col, threshold, invert); const float mask = sculpt_mask_by_color_final_mask_get( current_mask, new_mask, invert, preserve_mask); - if (current_mask == *vd.mask) { + if (current_mask == mask) { continue; }