diff options
author | Robin Gareus <robin@gareus.org> | 2015-08-28 18:48:40 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2015-08-28 18:48:40 +0200 |
commit | dca0e6fbe290022eae0b3ff694c4de3354d3d08e (patch) | |
tree | 4eca572e5f94c9bb6d0e6a7be19fabd6b1430371 /libs/ardour/midi_track.cc | |
parent | b0147a7767d7b2fde9dd8357515b8bc8018b5c65 (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.cc | 5 |
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; |