diff options
author | Wojtek KaliciĆski <wkal@google.com> | 2017-04-24 17:12:58 +0100 |
---|---|---|
committer | Ben Gruver <jesusfreke@jesusfreke.com> | 2017-04-25 12:02:57 -0700 |
commit | dd1192152912fc183c4584101b9e89cfe4286012 (patch) | |
tree | a16c799add4a2d50cfdbea06bb5aee54a543efda | |
parent | b65e942e7e53fab70e177681989eb8eaeb4c89de (diff) | |
download | smali-dd1192152912fc183c4584101b9e89cfe4286012.tar.gz |
Fix for counting method implementation sizes
-rw-r--r-- | dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexBackedMethodImplementation.java | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexBackedMethodImplementation.java b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexBackedMethodImplementation.java index 3d93d901..cfe16aa6 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexBackedMethodImplementation.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexBackedMethodImplementation.java @@ -160,8 +160,11 @@ public class DexBackedMethodImplementation implements MethodImplementation { public int getSize() { int debugSize = getDebugInfo().getSize(); + //set last offset just before bytecode instructions (after insns_size) + int lastOffset = codeOffset + CodeItem.INSTRUCTION_START_OFFSET; + //set code_item ending offset to the end of instructions list (insns_size * ushort) - int lastOffset = dexFile.readSmallUint(codeOffset + CodeItem.INSTRUCTION_COUNT_OFFSET) * 2; + lastOffset += dexFile.readSmallUint(codeOffset + CodeItem.INSTRUCTION_COUNT_OFFSET) * 2; //read any exception handlers and move code_item offset to the end for (DexBackedTryBlock tryBlock: getTryBlocks()) { |