瀏覽代碼

Merge pull request #82171 from timothyqiu/sep-leak

Fix leak when calling `remove_control_from_menu_panel`
Rémi Verschelde 1 年之前
父節點
當前提交
04317bc784
共有 2 個文件被更改,包括 6 次插入2 次删除
  1. 3 1
      editor/plugins/canvas_item_editor_plugin.cpp
  2. 3 1
      editor/plugins/node_3d_editor_plugin.cpp

+ 3 - 1
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));
 	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_hbox->remove_child(p_control);
 	context_toolbar_separators.erase(p_control);
 	context_toolbar_separators.erase(p_control);
+	memdelete(sep);
 
 
 	_update_context_toolbar();
 	_update_context_toolbar();
 }
 }

+ 3 - 1
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));
 	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_hbox->remove_child(p_control);
 	context_toolbar_separators.erase(p_control);
 	context_toolbar_separators.erase(p_control);
+	memdelete(sep);
 
 
 	_update_context_toolbar();
 	_update_context_toolbar();
 }
 }