From 2d67ce4e6080bd3e8164d5e299a32f633b3dd909 Mon Sep 17 00:00:00 2001 From: Haoyu Qiu Date: Sat, 23 Sep 2023 14:01:52 +0800 Subject: [PATCH] Fix leak when calling remove_control_from_menu_panel --- editor/plugins/canvas_item_editor_plugin.cpp | 4 +++- editor/plugins/node_3d_editor_plugin.cpp | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp index f62eaee96ed..1396f16dd26 100644 --- a/editor/plugins/canvas_item_editor_plugin.cpp +++ b/editor/plugins/canvas_item_editor_plugin.cpp @@ -4979,9 +4979,11 @@ void CanvasItemEditor::remove_control_from_menu_panel(Control *p_control) { p_control->disconnect("visibility_changed", callable_mp(this, &CanvasItemEditor::_update_context_toolbar)); - context_toolbar_hbox->remove_child(context_toolbar_separators[p_control]); + VSeparator *sep = context_toolbar_separators[p_control]; + context_toolbar_hbox->remove_child(sep); context_toolbar_hbox->remove_child(p_control); context_toolbar_separators.erase(p_control); + memdelete(sep); _update_context_toolbar(); } diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp index 2215c371d04..98ffcd11f6d 100644 --- a/editor/plugins/node_3d_editor_plugin.cpp +++ b/editor/plugins/node_3d_editor_plugin.cpp @@ -7695,9 +7695,11 @@ void Node3DEditor::remove_control_from_menu_panel(Control *p_control) { p_control->disconnect("visibility_changed", callable_mp(this, &Node3DEditor::_update_context_toolbar)); - context_toolbar_hbox->remove_child(context_toolbar_separators[p_control]); + VSeparator *sep = context_toolbar_separators[p_control]; + context_toolbar_hbox->remove_child(sep); context_toolbar_hbox->remove_child(p_control); context_toolbar_separators.erase(p_control); + memdelete(sep); _update_context_toolbar(); }