From f16b420b701ac0e423cd044d61602cc890d7ee46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wojtek=20Kalici=C5=84ski?= Date: Wed, 13 Sep 2017 11:45:38 +0100 Subject: [PATCH] Fix for method reference sizes The protos can be shared across methods so we should not be counting them as part of private method size. --- .../dexbacked/reference/DexBackedMethodReference.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/reference/DexBackedMethodReference.java b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/reference/DexBackedMethodReference.java index f2b0b597..bee08f8c 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/reference/DexBackedMethodReference.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/reference/DexBackedMethodReference.java @@ -102,15 +102,11 @@ public class DexBackedMethodReference extends BaseMethodReference { /** * Calculate and return the private size of a method reference. * - * Calculated as: class_idx + proto_idx + name_idx + prototype size + * Calculated as: class_idx + proto_idx + name_idx * * @return size in bytes */ public int getSize() { - int size = MethodIdItem.ITEM_SIZE; //ushort + ushort + uint for indices - DexBackedMethodProtoReference protoRef = new DexBackedMethodProtoReference(dexFile, - dexFile.readUshort(methodIdItemOffset + MethodIdItem.PROTO_OFFSET)); - size += protoRef.getSize(); - return size; + return MethodIdItem.ITEM_SIZE; //ushort + ushort + uint for indices } }