summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-08-03 03:44:51 +0200
committerRobin Gareus <robin@gareus.org>2013-08-03 13:44:37 +0200
commitb14d9a6451124434e174c1d14393dab7f3641e82 (patch)
tree61f659ad725e7f31c30f9c39ae989a28a8db39ab
parent9d63cfcab5537b8b82cc28b54f133fbed8773c7d (diff)
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().
-rw-r--r--libs/ardour/route.cc1
1 files changed, 1 insertions, 0 deletions
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<ChanCount,ChanCount> >::iterator c = configuration.begin();
for (ProcessorList::iterator p = _processors.begin(); p != _processors.end(); ++p, ++c) {