From bc2e278e915e8fa4d7ebbf50a76e8a207c468b04 Mon Sep 17 00:00:00 2001 From: Devin Anderson Date: Mon, 2 May 2011 17:25:14 -0700 Subject: [PATCH] Add jack_error() calls to 'jack_midi_event_reserve'. --- common/JackMidiAPI.cpp | 18 ++++++++++++++++-- common/JackMidiPort.cpp | 2 ++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/common/JackMidiAPI.cpp b/common/JackMidiAPI.cpp index b06a93a2..1a651493 100644 --- a/common/JackMidiAPI.cpp +++ b/common/JackMidiAPI.cpp @@ -98,10 +98,24 @@ EXPORT jack_midi_data_t* jack_midi_event_reserve(void* port_buffer, jack_nframes_t time, size_t data_size) { JackMidiBuffer *buf = (JackMidiBuffer*)port_buffer; - if (!buf && !buf->IsValid()) + if (! buf) { + jack_error("jack_midi_event_reserve: port buffer is set to NULL"); return 0; - if (time >= buf->nframes || (buf->event_count && buf->events[buf->event_count - 1].time > time)) + } + if (! buf->IsValid()) { + jack_error("jack_midi_event_reserve: port buffer is invalid"); + return 0; + } + if (time >= buf->nframes) { + jack_error("jack_midi_event_reserve: time parameter is out of range " + "(%lu >= %lu)", time, buf->nframes); + return 0; + } + if (buf->event_count && (buf->events[buf->event_count - 1].time > time)) { + jack_error("jack_midi_event_reserve: time parameter is earlier than " + "last reserved event"); return 0; + } return buf->ReserveEvent(time, data_size); } diff --git a/common/JackMidiPort.cpp b/common/JackMidiPort.cpp index 5bd82341..2426cb72 100644 --- a/common/JackMidiPort.cpp +++ b/common/JackMidiPort.cpp @@ -52,6 +52,8 @@ SERVER_EXPORT jack_midi_data_t* JackMidiBuffer::ReserveEvent(jack_nframes_t time { jack_shmsize_t space = MaxEventSize(); if (space == 0 || size > space) { + jack_error("JackMidiBuffer::ReserveEvent - the buffer does not have " + "enough room to enqueue a %lu byte event", size); lost_events++; return 0; }