summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2009-02-16 04:46:06 +0000
committerDavid Robillard <d@drobilla.net>2009-02-16 04:46:06 +0000
commit0ef53a2d343da1b926df96550a426ed800ff479e (patch)
treeef3810d7309ad15243e6ec7e008189c37ce1ddd9 /libs
parent93d7040d046f793d7908ff301910874c10012edd (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')
-rw-r--r--libs/evoral/src/Sequence.cpp8
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>