summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/midi_buffer.h
diff options
context:
space:
mode:
authorHans Baier <hansfbaier@googlemail.com>2009-02-02 07:59:03 +0000
committerHans Baier <hansfbaier@googlemail.com>2009-02-02 07:59:03 +0000
commiteaada019258528576771b42fd9136c7ebfe01d61 (patch)
treecdc4b8df1191411a2b0525106454442b9e0a465a /libs/ardour/ardour/midi_buffer.h
parent166ef64e3db4ab72b7b1e7455234e2b9ceddf6d8 (diff)
* added assertions to MidiBuffer::iterator_base in order to avoid offset corruption
git-svn-id: svn://localhost/ardour2/branches/3.0@4474 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/midi_buffer.h')
-rw-r--r--libs/ardour/ardour/midi_buffer.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/libs/ardour/ardour/midi_buffer.h b/libs/ardour/ardour/midi_buffer.h
index 9c5bb294c3..88aac0af64 100644
--- a/libs/ardour/ardour/midi_buffer.h
+++ b/libs/ardour/ardour/midi_buffer.h
@@ -57,12 +57,14 @@ public:
iterator_base<B,E>(B& b, size_t o) : buffer(b), offset(o) {}
inline E operator*() const {
uint8_t* ev_start = buffer._data + offset + sizeof(TimeType);
+ assert(Evoral::midi_event_size(*ev_start) >= 0);
return E(EventTypeMap::instance().midi_event_type(*ev_start),
- *(TimeType*)(buffer._data + offset),
+ *((TimeType*)(buffer._data + offset)),
Evoral::midi_event_size(*ev_start) + 1, ev_start);
}
inline iterator_base<B,E>& operator++() {
uint8_t* ev_start = buffer._data + offset + sizeof(TimeType);
+ assert(Evoral::midi_event_size(*ev_start) >= 0);
offset += sizeof(TimeType) + Evoral::midi_event_size(*ev_start) + 1;
return *this;
}