aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWojtek KaliciƄski <wkal@google.com>2017-04-24 17:12:58 +0100
committerBen Gruver <jesusfreke@jesusfreke.com>2017-04-25 12:02:57 -0700
commitdd1192152912fc183c4584101b9e89cfe4286012 (patch)
treea16c799add4a2d50cfdbea06bb5aee54a543efda
parentb65e942e7e53fab70e177681989eb8eaeb4c89de (diff)
downloadsmali-dd1192152912fc183c4584101b9e89cfe4286012.tar.gz
Fix for counting method implementation sizes
-rw-r--r--dexlib2/src/main/java/org/jf/dexlib2/dexbacked/DexBackedMethodImplementation.java5
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()) {