summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYohann Roussel <yroussel@google.com>2016-01-28 14:36:05 +0100
committerYohann Roussel <yroussel@google.com>2016-01-28 14:36:05 +0100
commit5d0fa87bdc0944b325ce70fd661660697dabf848 (patch)
treef0481f9914537cbd499a5b0b2b4245c7ff149c9b
parent47d5a85f8b82542e3f1ce4ee29c48ec17d70589f (diff)
downloadandroid_dalvik-5d0fa87bdc0944b325ce70fd661660697dabf848.tar.gz
android_dalvik-5d0fa87bdc0944b325ce70fd661660697dabf848.tar.bz2
android_dalvik-5d0fa87bdc0944b325ce70fd661660697dabf848.zip
Consider direct references in interface methods
Previously ClassReferenceListBuilder was considering only CstMethodRef and ignoring CstInterfaceMethodRef. Bug: 26823834 Change-Id: I5f016feb7ba91c9ab6abcd9edd9ecd7a27aa3ef9
-rw-r--r--dx/src/com/android/multidex/ClassReferenceListBuilder.java5
1 files changed, 3 insertions, 2 deletions
diff --git a/dx/src/com/android/multidex/ClassReferenceListBuilder.java b/dx/src/com/android/multidex/ClassReferenceListBuilder.java
index 8218693c9..f014708d9 100644
--- a/dx/src/com/android/multidex/ClassReferenceListBuilder.java
+++ b/dx/src/com/android/multidex/ClassReferenceListBuilder.java
@@ -19,6 +19,7 @@ package com.android.multidex;
import com.android.dx.cf.direct.DirectClassFile;
import com.android.dx.rop.cst.Constant;
import com.android.dx.rop.cst.ConstantPool;
+import com.android.dx.rop.cst.CstBaseMethodRef;
import com.android.dx.rop.cst.CstFieldRef;
import com.android.dx.rop.cst.CstMethodRef;
import com.android.dx.rop.cst.CstType;
@@ -103,8 +104,8 @@ public class ClassReferenceListBuilder {
checkDescriptor(((CstType) constant).getClassType());
} else if (constant instanceof CstFieldRef) {
checkDescriptor(((CstFieldRef) constant).getType());
- } else if (constant instanceof CstMethodRef) {
- Prototype proto = ((CstMethodRef) constant).getPrototype();
+ } else if (constant instanceof CstBaseMethodRef) {
+ Prototype proto = ((CstBaseMethodRef) constant).getPrototype();
checkDescriptor(proto.getReturnType());
StdTypeList args = proto.getParameterTypes();
for (int i = 0; i < args.size(); i++) {