summaryrefslogtreecommitdiff
path: root/gtk2_ardour/processor_box.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2019-03-07 16:40:16 +0100
committerRobin Gareus <robin@gareus.org>2019-03-07 23:50:32 +0100
commit3bc9281c312ec237b6365c023c5ef060f5788a6b (patch)
tree12969680c5f11c2216bc3746f701c6906f8a2b21 /gtk2_ardour/processor_box.cc
parent204d7bf76ccccadea68a7bd3c8797b451a5c2971 (diff)
Fix some Gtk::Menu related memory leaks
A Gtk::manage()d widget will be deleted when its parent container is destroyed. Top-level context menus are not inside a container and hence need to be manually deallocated. This adds explicit delete calls for menus where there is a member variable reference to the Menu.
Diffstat (limited to 'gtk2_ardour/processor_box.cc')
-rw-r--r--gtk2_ardour/processor_box.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/gtk2_ardour/processor_box.cc b/gtk2_ardour/processor_box.cc
index f7c54a8bce..a31bfc9f73 100644
--- a/gtk2_ardour/processor_box.cc
+++ b/gtk2_ardour/processor_box.cc
@@ -715,7 +715,7 @@ ProcessorEntry::hide_things ()
}
-Menu *
+Menu*
ProcessorEntry::build_controls_menu ()
{
using namespace Menu_Helpers;
@@ -778,7 +778,7 @@ ProcessorEntry::toggle_control_visibility (Control* c)
_parent->update_gui_object_state (this);
}
-Menu *
+Menu*
ProcessorEntry::build_send_options_menu ()
{
using namespace Menu_Helpers;
@@ -2160,6 +2160,7 @@ ProcessorBox::show_processor_menu (int arg)
aux_menu_item->set_submenu (*m);
aux_menu_item->set_sensitive (true);
} else {
+ delete m;
/* stupid gtkmm: we need to pass a null reference here */
gtk_menu_item_set_submenu (aux_menu_item->gobj(), 0);
aux_menu_item->set_sensitive (false);
@@ -2174,6 +2175,7 @@ ProcessorBox::show_processor_menu (int arg)
listen_menu_item->set_submenu (*m);
listen_menu_item->set_sensitive (true);
} else {
+ delete m;
/* stupid gtkmm: we need to pass a null reference here */
gtk_menu_item_set_submenu (listen_menu_item->gobj(), 0);
listen_menu_item->set_sensitive (false);
@@ -2188,6 +2190,7 @@ ProcessorBox::show_processor_menu (int arg)
remove_listen_menu_item->set_submenu (*m);
remove_listen_menu_item->set_sensitive (true);
} else {
+ delete m;
/* stupid gtkmm: we need to pass a null reference here */
gtk_menu_item_set_submenu (remove_listen_menu_item->gobj(), 0);
remove_listen_menu_item->set_sensitive (false);
@@ -2213,6 +2216,7 @@ ProcessorBox::show_processor_menu (int arg)
controls_menu_item->set_submenu (*m);
controls_menu_item->set_sensitive (true);
} else {
+ delete m;
gtk_menu_item_set_submenu (controls_menu_item->gobj(), 0);
controls_menu_item->set_sensitive (false);
}
@@ -2230,6 +2234,7 @@ ProcessorBox::show_processor_menu (int arg)
send_menu_item->set_submenu (*m);
send_menu_item->set_sensitive (true);
} else {
+ delete m;
gtk_menu_item_set_submenu (send_menu_item->gobj(), 0);
send_menu_item->set_sensitive (false);
}