diff options
author | David Robillard <d@drobilla.net> | 2009-02-16 04:46:06 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2009-02-16 04:46:06 +0000 |
commit | 0ef53a2d343da1b926df96550a426ed800ff479e (patch) | |
tree | ef3810d7309ad15243e6ec7e008189c37ce1ddd9 /libs/evoral | |
parent | 93d7040d046f793d7908ff301910874c10012edd (diff) |
Fix crash on iteration over an empty sequence and/or recording controllers only.
git-svn-id: svn://localhost/ardour2/branches/3.0@4596 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/evoral')
-rw-r--r-- | libs/evoral/src/Sequence.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/libs/evoral/src/Sequence.cpp b/libs/evoral/src/Sequence.cpp index d11988e70c..39d5355dd0 100644 --- a/libs/evoral/src/Sequence.cpp +++ b/libs/evoral/src/Sequence.cpp @@ -186,10 +186,10 @@ Sequence<Time>::const_iterator::const_iterator(const Sequence<Time>& seq, Time t seq.control_to_midi_event(_event, earliest_control); break; default: - assert(false); + break; } - if (!_event || _event->size() == 0) { + if (_type == NIL || !_event || _event->size() == 0) { DUMP(format("Starting at end @ %1%\n") % t); _type = NIL; _is_end = true; @@ -200,10 +200,8 @@ Sequence<Time>::const_iterator::const_iterator(const Sequence<Time>& seq, Time t % (int)_event->event_type() % (int)((MIDIEvent<Time>*)_event.get())->type() % _event->time()); + assert(midi_event_is_valid(_event->buffer(), _event->size())); } - - assert(_event && _event->size() > 0 && _event->time() >= t); - assert(midi_event_is_valid(_event->buffer(), _event->size())); } template<typename Time> |