From 5d1335f3900f873596fbe025695eef8c13b8352d Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Sun, 26 Jan 2014 10:04:03 +0100 Subject: [PATCH] RemoteVstPlugin: fix build failure due to out-of-bounds-array-access-warning Newer versions of GCC seem to assume an array size of 0 for arrays whose size is not specified explicitely. This causes a warning about an out-of-bounds array access. --- include/aeffectx.h | 2 +- plugins/vst_base/RemoteVstPlugin.cpp | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/include/aeffectx.h b/include/aeffectx.h index 393249b03..4188bf41a 100644 --- a/include/aeffectx.h +++ b/include/aeffectx.h @@ -175,7 +175,7 @@ public: // 04 void *reserved; // 08 - VstEvent * events[]; + VstEvent* events[1]; } ; diff --git a/plugins/vst_base/RemoteVstPlugin.cpp b/plugins/vst_base/RemoteVstPlugin.cpp index cead22b70..9d1b278c3 100644 --- a/plugins/vst_base/RemoteVstPlugin.cpp +++ b/plugins/vst_base/RemoteVstPlugin.cpp @@ -773,16 +773,15 @@ void RemoteVstPlugin::process( const sampleFrame * _in, sampleFrame * _out ) // dispatcher-call, so we create static copies of the // data and post them #define MIDI_EVENT_BUFFER_COUNT 1024 - static char event_buf[sizeof( VstMidiEvent * ) * - MIDI_EVENT_BUFFER_COUNT + - sizeof( VstEvents )]; + static char eventsBuffer[sizeof( VstEvents ) + sizeof( VstMidiEvent * ) * MIDI_EVENT_BUFFER_COUNT]; static VstMidiEvent vme[MIDI_EVENT_BUFFER_COUNT]; - VstEvents * events = (VstEvents *) event_buf; + + VstEvents* events = (VstEvents *) eventsBuffer; events->reserved = 0; events->numEvents = m_midiEvents.size(); + int idx = 0; - for( VstMidiEventList::iterator it = m_midiEvents.begin(); - it != m_midiEvents.end(); ++it, ++idx ) + for( VstMidiEventList::iterator it = m_midiEvents.begin(); it != m_midiEvents.end(); ++it, ++idx ) { memcpy( &vme[idx], &*it, sizeof( VstMidiEvent ) ); events->events[idx] = (VstEvent *) &vme[idx];