From 722b85e828c55eed97754f50e445a14935effb65 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Fri, 16 May 2008 02:35:37 +0000 Subject: [PATCH] Fix crash on out of range MIDI events (though this shouldn't be possible at all....). git-svn-id: svn://localhost/ardour2/branches/3.0@3357 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/midi_region_view.cc | 4 ++-- libs/ardour/midi_model.cc | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc index b9af0a81a2..d020a13d88 100644 --- a/gtk2_ardour/midi_region_view.cc +++ b/gtk2_ardour/midi_region_view.cc @@ -764,8 +764,8 @@ MidiRegionView::add_note(const boost::shared_ptr note) ev_rect->property_y2() = y1 + floor(midi_stream_view()->note_height()); if (note->duration() == 0) { - cerr << "MidiModel: WARNING: Discovered note with duration 0 and pitch" << note->note() - << " at time " << note->time() << endl; + cerr << "MidiModel: WARNING: Discovered note with duration 0 and pitch" + << (int)note->note() << " at time " << note->time() << endl; if (_active_notes) { assert(note->note() < 128); _active_notes[note->note()] = ev_rect; diff --git a/libs/ardour/midi_model.cc b/libs/ardour/midi_model.cc index b4e2c54d3c..8819423694 100644 --- a/libs/ardour/midi_model.cc +++ b/libs/ardour/midi_model.cc @@ -101,8 +101,12 @@ MidiModel::const_iterator::const_iterator(const MidiModel& model, double t) } assert(x >= 0); - assert(y >= i->first.min()); - assert(y <= i->first.max()); + + if (y >= i->first.min() || y <= i->first.max()) { + cerr << "ERROR: Event value '" << y << "' out of range [" + << i->first.min() << "," << i->first.max() << "], ignored" << endl; + continue; + } const MidiControlIterator new_iter(i->second->list(), x, y);