From 484bcf4e3c96ec9e5675bdb9099e265220567187 Mon Sep 17 00:00:00 2001 From: jules Date: Sat, 2 Nov 2013 17:09:43 +0000 Subject: [PATCH] MidiMessage - fix for reported length of sysexes by message constructor. --- modules/juce_audio_basics/midi/juce_MidiMessage.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/modules/juce_audio_basics/midi/juce_MidiMessage.cpp b/modules/juce_audio_basics/midi/juce_MidiMessage.cpp index caed0b746c..a6087f6bb5 100644 --- a/modules/juce_audio_basics/midi/juce_MidiMessage.cpp +++ b/modules/juce_audio_basics/midi/juce_MidiMessage.cpp @@ -201,11 +201,8 @@ MidiMessage::MidiMessage (const void* srcData, int sz, int& numBytesUsed, const break; // bytes, assume it's the end of the sysex ++numVariableLengthSysexBytes; - ++d; - continue; } - - if (! haveReadAllLengthBytes) + else if (! haveReadAllLengthBytes) { haveReadAllLengthBytes = true; ++numVariableLengthSysexBytes; @@ -220,6 +217,8 @@ MidiMessage::MidiMessage (const void* srcData, int sz, int& numBytesUsed, const allocatedData.malloc (size); *allocatedData = (uint8) byte; memcpy (allocatedData + 1, src, (size_t) (size - 1)); + + numBytesUsed += numVariableLengthSysexBytes; // (these aren't counted in the size) } else if (byte == 0xff) {