From 5b2cd72940b9ed07c16d932d170e7be2f1e335d5 Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Sat, 28 Sep 2013 22:18:50 +0200 Subject: [PATCH] fix: cast to long for shift --- .../tiling/source/common/PbfDecoder.java | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/vtm/src/org/oscim/tiling/source/common/PbfDecoder.java b/vtm/src/org/oscim/tiling/source/common/PbfDecoder.java index a8fbdf46..2bb08932 100644 --- a/vtm/src/org/oscim/tiling/source/common/PbfDecoder.java +++ b/vtm/src/org/oscim/tiling/source/common/PbfDecoder.java @@ -17,12 +17,11 @@ package org.oscim.tiling.source.common; import java.io.IOException; import java.io.InputStream; +import org.oscim.backend.Log; import org.oscim.core.Tile; import org.oscim.tiling.source.ITileDataSink; import org.oscim.utils.UTF8Decoder; -import org.oscim.backend.Log; - public abstract class PbfDecoder { private final static String TAG = PbfDecoder.class.getName(); @@ -164,14 +163,14 @@ public abstract class PbfDecoder { if (bufferPos + 8 > bufferFill) fillBuffer(8); - long val = (buffer[bufferPos++] & 0xFF - | (buffer[bufferPos++] & 0xFF) << 8 - | (buffer[bufferPos++] & 0xFF) << 16 - | (buffer[bufferPos++] & 0xFF) << 24 - | (buffer[bufferPos++] & 0xFF) << 32 - | (buffer[bufferPos++] & 0xFF) << 40 - | (buffer[bufferPos++] & 0xFF) << 48 - | (buffer[bufferPos++] & 0xFF) << 56); + long val = ((long) buffer[bufferPos++] & 0xFF + | ((long) buffer[bufferPos++] & 0xFF) << 8 + | ((long) buffer[bufferPos++] & 0xFF) << 16 + | ((long) buffer[bufferPos++] & 0xFF) << 24 + | ((long) buffer[bufferPos++] & 0xFF) << 32 + | ((long) buffer[bufferPos++] & 0xFF) << 40 + | ((long) buffer[bufferPos++] & 0xFF) << 48 + | ((long) buffer[bufferPos++] & 0xFF) << 56); return Double.longBitsToDouble(val); }