summaryrefslogtreecommitdiff
path: root/libs/ardour/midi_port.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-08-03 19:16:33 +0200
committerRobin Gareus <robin@gareus.org>2017-08-03 19:25:14 +0200
commit1937c74191468b4e9e4baa251bb6329a3818d8e4 (patch)
tree8e65670394849f48d0128a2585c89bf2f83f01f3 /libs/ardour/midi_port.cc
parent8b380a423a4aecfeccb5a26fa418937810b81cef (diff)
Ignore cycle-start/end for unregistered ports
Should fix a race during Session::destroy(), Port::PortDrop which unregisters ports with the backend, but the actual port instance will still exist. The engine does no longer have a session-pointer and only calls CycleStart(); CycleEnd() to clear port-buffers. Trying to clear and already unregistered Port will crash.
Diffstat (limited to 'libs/ardour/midi_port.cc')
-rw-r--r--libs/ardour/midi_port.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/libs/ardour/midi_port.cc b/libs/ardour/midi_port.cc
index 05d9da5971..9a52aef3c6 100644
--- a/libs/ardour/midi_port.cc
+++ b/libs/ardour/midi_port.cc
@@ -65,7 +65,7 @@ MidiPort::cycle_start (pframes_t nframes)
_buffer->clear ();
- if (sends_output ()) {
+ if (sends_output () && _port_handle) {
port_engine.midi_clear (port_engine.get_buffer (_port_handle, nframes));
}