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
This commit is contained in:
parent
504a3d765f
commit
722b85e828
@ -764,8 +764,8 @@ MidiRegionView::add_note(const boost::shared_ptr<Note> note)
|
|||||||
ev_rect->property_y2() = y1 + floor(midi_stream_view()->note_height());
|
ev_rect->property_y2() = y1 + floor(midi_stream_view()->note_height());
|
||||||
|
|
||||||
if (note->duration() == 0) {
|
if (note->duration() == 0) {
|
||||||
cerr << "MidiModel: WARNING: Discovered note with duration 0 and pitch" << note->note()
|
cerr << "MidiModel: WARNING: Discovered note with duration 0 and pitch"
|
||||||
<< " at time " << note->time() << endl;
|
<< (int)note->note() << " at time " << note->time() << endl;
|
||||||
if (_active_notes) {
|
if (_active_notes) {
|
||||||
assert(note->note() < 128);
|
assert(note->note() < 128);
|
||||||
_active_notes[note->note()] = ev_rect;
|
_active_notes[note->note()] = ev_rect;
|
||||||
|
@ -101,8 +101,12 @@ MidiModel::const_iterator::const_iterator(const MidiModel& model, double t)
|
|||||||
}
|
}
|
||||||
|
|
||||||
assert(x >= 0);
|
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);
|
const MidiControlIterator new_iter(i->second->list(), x, y);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user