From 6e524ece32784272da29c657c264ea38083c6cf1 Mon Sep 17 00:00:00 2001 From: Izzat Bahadirov Date: Mon, 25 Mar 2013 16:44:32 -0400 Subject: [PATCH] Fix for incorrect goto/16 to goto/32 conversion. --- .../java/org/jf/dexlib2/writer/util/InstructionWriteUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dexlib2/src/main/java/org/jf/dexlib2/writer/util/InstructionWriteUtil.java b/dexlib2/src/main/java/org/jf/dexlib2/writer/util/InstructionWriteUtil.java index f729dd72..4f238a8a 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/writer/util/InstructionWriteUtil.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/writer/util/InstructionWriteUtil.java @@ -193,7 +193,7 @@ public class InstructionWriteUtil { } else if (instruction.getOpcode().format.equals(Format.Format20t) && !offsetToNewInstructionMap.containsKey(currentCodeOffset)) { int targetOffset = ((Instruction20t)instruction).getCodeOffset(); int codeOffsetDelta = codeOffsetShift(currentCodeOffset); - int newTargetOffset = targetOffsetShift(currentCodeOffset, targetOffset); + int newTargetOffset = targetOffset + targetOffsetShift(currentCodeOffset, targetOffset); if ((short)newTargetOffset != newTargetOffset) { codeOffsetShifts.add(codeOffsetDelta, currentCodeOffset+instruction.getCodeUnits()); offsetToNewInstructionMap.put(currentCodeOffset, Format.Format30t);