From dc4bcbe0c07bb9ee85f51402c89a47f1a9b2d059 Mon Sep 17 00:00:00 2001 From: "JesusFreke@JesusFreke.com" Date: Fri, 19 Jun 2009 00:38:14 +0000 Subject: [PATCH] Fixed issue decoding signed ints and shorts git-svn-id: https://smali.googlecode.com/svn/trunk@167 55b6fa8a-2a1e-11de-a435-ffa8d773f76a --- dexlib/src/main/java/org/jf/dexlib/util/NumberUtils.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dexlib/src/main/java/org/jf/dexlib/util/NumberUtils.java b/dexlib/src/main/java/org/jf/dexlib/util/NumberUtils.java index e7668185..39963c0c 100644 --- a/dexlib/src/main/java/org/jf/dexlib/util/NumberUtils.java +++ b/dexlib/src/main/java/org/jf/dexlib/util/NumberUtils.java @@ -48,7 +48,7 @@ public class NumberUtils { public static short decodeShort(byte lsb, byte msb) { return (short) - ( lsb | + ( (lsb & 0xFF) | (msb << 8) ); } @@ -59,9 +59,9 @@ public class NumberUtils { } public static int decodeInt(byte lsb, byte mlsb, byte mmsb, byte msb) { - return lsb | - (mlsb << 8) | - (mmsb << 16) | + return (lsb & 0xFF) | + ((mlsb & 0xFF) << 8) | + ((mmsb & 0xFF) << 16) | (msb << 24); }