diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc index 6ad5a16206..53e3794626 100644 --- a/gtk2_ardour/route_ui.cc +++ b/gtk2_ardour/route_ui.cc @@ -297,11 +297,15 @@ RouteUI::set_session (ARDOUR::Session*s) { SessionHandlePtr::set_session (s); - /* This is needed to clean out IDs of sends, when using output selector - * with MixerStrip::_current_delivery - */ if (!s) { - assert (input_selectors.empty ()); + /* This is needed to clean out IDs of sends, when using output selector + * with MixerStrip::_current_delivery. + * It's also prudent to hide/destroy input-selectors early, before delayed + * self_delete() can do that in the ~RouteUI. + */ + for (IOSelectorMap::const_iterator i = input_selectors.begin(); i != input_selectors.end() ; ++i) { + delete i->second; + } for (IOSelectorMap::const_iterator i = output_selectors.begin(); i != output_selectors.end() ; ++i) { delete i->second; } diff --git a/gtk2_ardour/route_ui.h b/gtk2_ardour/route_ui.h index 2a6367b979..3d0bff7dd7 100644 --- a/gtk2_ardour/route_ui.h +++ b/gtk2_ardour/route_ui.h @@ -297,7 +297,7 @@ protected: virtual void blink_rec_display (bool onoff); virtual void map_frozen (); - void self_delete (); + virtual void self_delete (); virtual void start_step_editing () {} virtual void stop_step_editing() {} diff --git a/gtk2_ardour/track_record_axis.cc b/gtk2_ardour/track_record_axis.cc index 0fca185f70..a93506c854 100644 --- a/gtk2_ardour/track_record_axis.cc +++ b/gtk2_ardour/track_record_axis.cc @@ -98,8 +98,6 @@ TrackRecordAxis::TrackRecordAxis (Session* s, boost::shared_ptr r RouteUI::set_route (rt); - _route->DropReferences.connect (_route_connections, invalidator (*this), boost::bind (&TrackRecordAxis::self_delete, this), gui_context ()); - UI::instance ()->theme_changed.connect (sigc::mem_fun (*this, &TrackRecordAxis::on_theme_changed)); UIConfiguration::instance ().ColorsChanged.connect (sigc::mem_fun (*this, &TrackRecordAxis::on_theme_changed)); UIConfiguration::instance ().DPIReset.connect (sigc::mem_fun (*this, &TrackRecordAxis::on_theme_changed));