diff options
author | Robin Gareus <robin@gareus.org> | 2013-07-30 15:12:32 +0200 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2013-08-08 15:26:17 -0400 |
commit | 401bbe24c3460087da27013376c745e63f58ad90 (patch) | |
tree | 69e41a542f86280be0f4499892a2ecd598b2a752 | |
parent | e92306459d60ea198799e54c5955343800926d77 (diff) |
disconnect AuxSend connection when deleting bus
fixes crash:
- add bus
- aux-send a signal to that bus
- delete bus
- add another bus
- aux-send a signal to "another bus"
- click "Aux Send" button on "another bus"
- crash
-rw-r--r-- | gtk2_ardour/route_ui.cc | 4 | ||||
-rw-r--r-- | gtk2_ardour/route_ui.h | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc index bbc60ef425..6a114b0e5f 100644 --- a/gtk2_ardour/route_ui.cc +++ b/gtk2_ardour/route_ui.cc @@ -61,7 +61,7 @@ using namespace ARDOUR; using namespace PBD; uint32_t RouteUI::_max_invert_buttons = 3; -sigc::signal<void, boost::shared_ptr<Route> > RouteUI::BusSendDisplayChanged; +PBD::Signal1<void, boost::shared_ptr<Route> > RouteUI::BusSendDisplayChanged; boost::weak_ptr<Route> RouteUI::_showing_sends_to; RouteUI::RouteUI (ARDOUR::Session* sess) @@ -171,7 +171,7 @@ RouteUI::init () monitor_disk_button->signal_button_press_event().connect (sigc::mem_fun(*this, &RouteUI::monitor_disk_press)); monitor_disk_button->signal_button_release_event().connect (sigc::mem_fun(*this, &RouteUI::monitor_disk_release)); - BusSendDisplayChanged.connect (sigc::mem_fun (*this, &RouteUI::bus_send_display_changed)); + BusSendDisplayChanged.connect (*this, invalidator (*this), boost::bind(&RouteUI::bus_send_display_changed, this, _1), gui_context()); } void diff --git a/gtk2_ardour/route_ui.h b/gtk2_ardour/route_ui.h index 0501c78937..245101f616 100644 --- a/gtk2_ardour/route_ui.h +++ b/gtk2_ardour/route_ui.h @@ -225,7 +225,7 @@ class RouteUI : public virtual AxisView * by a click on the `Sends' button. The parameter is the route that the sends are * to, or 0 if no route is now in this mode. */ - static sigc::signal<void, boost::shared_ptr<ARDOUR::Route> > BusSendDisplayChanged; + static PBD::Signal1<void, boost::shared_ptr<ARDOUR::Route> > BusSendDisplayChanged; protected: PBD::ScopedConnectionList route_connections; |