From 46bda9e8e73600e3b2e745ec761a4d801cb46f0b Mon Sep 17 00:00:00 2001 From: Bob Pan Date: Thu, 29 Oct 2015 01:01:18 +0800 Subject: [PATCH] fix bug in lengthOfUleb128 --HG-- branch : 2.x --- .../googlecode/d2j/dex/writer/item/BaseItem.java | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/dex-writer/src/main/java/com/googlecode/d2j/dex/writer/item/BaseItem.java b/dex-writer/src/main/java/com/googlecode/d2j/dex/writer/item/BaseItem.java index 63e248f7..0da8f426 100644 --- a/dex-writer/src/main/java/com/googlecode/d2j/dex/writer/item/BaseItem.java +++ b/dex-writer/src/main/java/com/googlecode/d2j/dex/writer/item/BaseItem.java @@ -60,19 +60,12 @@ public abstract class BaseItem { return count; } - public static int lengthOfUleb128(final int s) { + public static int lengthOfUleb128(int value) { + int remaining = value >>> 7; int length = 1; - if (s > 0x7f) { + while (remaining != 0) { length++; - if (s > (0x3fff)) { - length++; - if (s > (0x1fffff)) { - length++; - if (s > (0xfffffff)) { - length++; - } - } - } + remaining >>>= 7; } return length; }