diff options
author | Hans Baier <hansfbaier@googlemail.com> | 2008-05-11 20:23:17 +0000 |
---|---|---|
committer | Hans Baier <hansfbaier@googlemail.com> | 2008-05-11 20:23:17 +0000 |
commit | ddaaff448302bb5c3cda36d16b785b2eb3f269e2 (patch) | |
tree | 3bb0744734bd95067294d4c3b20d21b6a09abfd6 /libs/ardour/ardour/midi_ring_buffer.h | |
parent | 7fd65ed78de5f0e3e9dcb99a3aeb55bedd640daf (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.h | 8 |
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) { |