summaryrefslogtreecommitdiff
path: root/libs/ardour/midi_track.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-08-28 18:48:40 +0200
committerRobin Gareus <robin@gareus.org>2015-08-28 18:48:40 +0200
commitdca0e6fbe290022eae0b3ff694c4de3354d3d08e (patch)
tree4eca572e5f94c9bb6d0e6a7be19fabd6b1430371 /libs/ardour/midi_track.cc
parentb0147a7767d7b2fde9dd8357515b8bc8018b5c65 (diff)
fix crash with missing .mid
assert in ARDOUR::MidiRegion::control() boost::shared_ptr<ARDOUR::MidiModel>::operator-> invalid ptr. see http://pastebin.com/dTV10Zu6
Diffstat (limited to 'libs/ardour/midi_track.cc')
-rw-r--r--libs/ardour/midi_track.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/libs/ardour/midi_track.cc b/libs/ardour/midi_track.cc
index 6d7b4519c5..fc1ab21b53 100644
--- a/libs/ardour/midi_track.cc
+++ b/libs/ardour/midi_track.cc
@@ -513,6 +513,11 @@ MidiTrack::non_realtime_locate (framepos_t pos)
return;
}
+ /* the source may be missing, but the control still referenced in the GUI */
+ if (!region->midi_source() || !region->model()) {
+ return;
+ }
+
Glib::Threads::Mutex::Lock lm (_control_lock, Glib::Threads::TRY_LOCK);
if (!lm.locked()) {
return;