From 35703cb3fc60e11e2ee2b1c5d231cc5710f6a672 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sat, 3 Aug 2013 03:44:51 +0200 Subject: [PATCH] properly handle port removal in route. bug: - add midi track - add additional midi port - remove additional midi port - press play -> crash because.. ARDOUR::MidiTrack::roll's route_buffer still has 2 midi-channels. This is because processor_max_streams was not updated (no plugins added/removed) fill_buffers_with_input() eventually asserts when trying to get the 2nd (nonexistant) midi port via ARDOUR::PortSet::nth_midi_port() in ARDOUR::PortSet::port(). --- libs/ardour/route.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index 77e538cfe9..2e1517fe21 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -1708,6 +1708,7 @@ Route::configure_processors_unlocked (ProcessorStreams* err) ChanCount out; bool seen_mains_out = false; processor_out_streams = _input->n_ports(); + processor_max_streams.reset(); list< pair >::iterator c = configuration.begin(); for (ProcessorList::iterator p = _processors.begin(); p != _processors.end(); ++p, ++c) {