diff options
author | Andrew John Hughes <gnu_andrew@member.fsf.org> | 2012-10-26 08:14:56 +0100 |
---|---|---|
committer | Andrew John Hughes <gnu_andrew@member.fsf.org> | 2012-10-26 08:14:56 +0100 |
commit | d872df55e1f67fbf4d8eaa25094fdcaa68771230 (patch) | |
tree | e4cbd49d35505909e79ee29b129db4811c85bd0e | |
parent | 741be83381ecbbb9f4008260c7f592dbbe8d41ba (diff) | |
download | classpath-d872df55e1f67fbf4d8eaa25094fdcaa68771230.tar.gz |
PR42551: Avoid overwriting length of message when computing length representation.
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.
Signed-off-by: Andrew John Hughes <gnu_andrew@member.fsf.org>
-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 |