aboutsummaryrefslogtreecommitdiff
path: root/dexlib2/src
diff options
context:
space:
mode:
authorWojtek KaliciƄski <wkal@google.com>2017-09-13 11:45:38 +0100
committerBen Gruver <jesusfreke@jesusfreke.com>2018-06-13 14:12:40 -0700
commitf16b420b701ac0e423cd044d61602cc890d7ee46 (patch)
treedacb4015937762c089916512e4ec4a3d38a1c34b /dexlib2/src
parent67e7b39dfc5965363fdaa7c2dfc8dff4d6eb739c (diff)
downloadsmali-f16b420b701ac0e423cd044d61602cc890d7ee46.tar.gz
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.
Diffstat (limited to 'dexlib2/src')
-rw-r--r--dexlib2/src/main/java/org/jf/dexlib2/dexbacked/reference/DexBackedMethodReference.java8
1 files 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
}
}