diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | javax/sound/midi/MetaMessage.java | 6 |
2 files changed, 11 insertions, 2 deletions
@@ -1,3 +1,10 @@ +2009-12-30 Paul Fernhout <pdfernhout@kurtz-fernhout.com> + + PR classpath/42551 + * javax/sound/midi/MetaMessage.java: + (setMessage(int,byte[],int)): Don't overwrite + length variable when computing the length representation. + 2012-10-17 Jeremy Singer <Jeremy.Singer@glasgow.ac.uk> PR classpath/54960 diff --git a/javax/sound/midi/MetaMessage.java b/javax/sound/midi/MetaMessage.java index 4d43975c3..0aab153cb 100644 --- a/javax/sound/midi/MetaMessage.java +++ b/javax/sound/midi/MetaMessage.java @@ -120,10 +120,12 @@ public class MetaMessage extends MidiMessage // Now compute the length representation long buffer = length & 0x7F; - while ((length >>= 7) > 0) + // Avoid altering length variable; PR42551 + lengthValue = length; + while ((lengthValue >>= 7) > 0) { buffer <<= 8; - buffer |= ((length & 0x7F) | 0x80); + buffer |= ((lengthValue & 0x7F) | 0x80); } // Now store the variable length length value |