summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/midi_ring_buffer.h
diff options
context:
space:
mode:
authorHans Baier <hansfbaier@googlemail.com>2008-05-11 20:23:17 +0000
committerHans Baier <hansfbaier@googlemail.com>2008-05-11 20:23:17 +0000
commitddaaff448302bb5c3cda36d16b785b2eb3f269e2 (patch)
tree3bb0744734bd95067294d4c3b20d21b6a09abfd6 /libs/ardour/ardour/midi_ring_buffer.h
parent7fd65ed78de5f0e3e9dcb99a3aeb55bedd640daf (diff)
* Added a couple of guards to prevent MIDI::Events with NULL buffers to enter into ring buffers
git-svn-id: svn://localhost/ardour2/branches/3.0@3332 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/midi_ring_buffer.h')
-rw-r--r--libs/ardour/ardour/midi_ring_buffer.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/libs/ardour/ardour/midi_ring_buffer.h b/libs/ardour/ardour/midi_ring_buffer.h
index c817866600..aaad5769a3 100644
--- a/libs/ardour/ardour/midi_ring_buffer.h
+++ b/libs/ardour/ardour/midi_ring_buffer.h
@@ -399,7 +399,15 @@ MidiRingBuffer::read(MidiBuffer& dst, nframes_t start, nframes_t end, nframes_t
if (ev.time() >= start) {
ev.time() -= start;
+ // TODO: Right now there come MIDI Events with empty buffer
+ if(!ev.buffer()) {
+ std::cerr << "MidiRingBuffer::read WARNING: Skipping MIDI Event with NULL buffer pointer "
+ << " and length " << int(ev.size()) << std::endl;
+ return 0;
+ }
+
Byte* write_loc = dst.reserve(ev.time(), ev.size());
+
success = MidiRingBufferBase<Byte>::full_read(ev.size(), write_loc);
if (success) {