Browse Source

Add jack_error() calls to 'jack_midi_event_reserve'.

tags/1.9.8
Devin Anderson 14 years ago
parent
commit
bc2e278e91
2 changed files with 18 additions and 2 deletions
  1. +16
    -2
      common/JackMidiAPI.cpp
  2. +2
    -0
      common/JackMidiPort.cpp

+ 16
- 2
common/JackMidiAPI.cpp View File

@@ -98,10 +98,24 @@ EXPORT
jack_midi_data_t* jack_midi_event_reserve(void* port_buffer, jack_nframes_t time, size_t data_size) jack_midi_data_t* jack_midi_event_reserve(void* port_buffer, jack_nframes_t time, size_t data_size)
{ {
JackMidiBuffer *buf = (JackMidiBuffer*)port_buffer; 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; 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 0;
}
return buf->ReserveEvent(time, data_size); return buf->ReserveEvent(time, data_size);
} }




+ 2
- 0
common/JackMidiPort.cpp View File

@@ -52,6 +52,8 @@ SERVER_EXPORT jack_midi_data_t* JackMidiBuffer::ReserveEvent(jack_nframes_t time
{ {
jack_shmsize_t space = MaxEventSize(); jack_shmsize_t space = MaxEventSize();
if (space == 0 || size > space) { 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++; lost_events++;
return 0; return 0;
} }


Loading…
Cancel
Save