From e0241be09419849ed88c68ea2a387a46bde2b77f Mon Sep 17 00:00:00 2001 From: Harvey Harrison Date: Fri, 11 Apr 2014 10:58:09 -0700 Subject: jogl: avoid bugs with sign-extension in JPEGDecoder Signed-off-by: Harvey Harrison --- src/jogl/classes/jogamp/opengl/util/jpeg/JPEGDecoder.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/jogl/classes/jogamp/opengl/util/jpeg/JPEGDecoder.java b/src/jogl/classes/jogamp/opengl/util/jpeg/JPEGDecoder.java index 45087ea2c..078965301 100644 --- a/src/jogl/classes/jogamp/opengl/util/jpeg/JPEGDecoder.java +++ b/src/jogl/classes/jogamp/opengl/util/jpeg/JPEGDecoder.java @@ -117,8 +117,8 @@ public class JPEGDecoder { private JFIF(final byte data[]) { version = new VersionNumber(data[5], data[6], 0); densityUnits = data[7]; - xDensity = (data[8] << 8) | data[9]; - yDensity = (data[10] << 8) | data[11]; + xDensity = ((data[ 8] << 8) & 0xff00) | (data[ 9] & 0xff); + yDensity = ((data[10] << 8) & 0xff00) | (data[11] & 0xff); thumbWidth = data[12]; thumbHeight = data[13]; if( 0 < thumbWidth && 0 < thumbHeight ) { @@ -155,8 +155,8 @@ public class JPEGDecoder { private Adobe(final byte[] data) { version = data[6]; - flags0 = (short) ( (data[7] << 8) | data[8] ) ; - flags1 = (short) ( (data[9] << 8) | data[10] ) ; + flags0 = (short)(((data[7] << 8) & 0xff00) | (data[ 8] & 0xff)); + flags1 = (short)(((data[9] << 8) & 0xff00) | (data[10] & 0xff)); colorCode = data[11]; switch( colorCode ) { case 2: colorSpace = ColorSpace.YCCK; break; -- cgit v1.2.3