mirror of
https://github.com/revanced/smali.git
synced 2025-05-03 08:04:28 +02:00
Introduced getInterfacesFull() method to ensure that all interfaces are resolved when creating a vtable.
This commit is contained in:
parent
89b28308db
commit
d3ac72fd67
@ -141,10 +141,16 @@ public class ClassProto implements TypeProto {
|
|||||||
interfacesFullyResolved = false;
|
interfacesFullyResolved = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return interfaces;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
protected LinkedHashMap<String, ClassDef> getInterfacesFull() {
|
||||||
|
LinkedHashMap<String, ClassDef> interfaces = getInterfaces();
|
||||||
|
|
||||||
if (!interfacesFullyResolved) {
|
if (!interfacesFullyResolved) {
|
||||||
throw new UnresolvedClassException("Interfaces for class %s not fully resolved", getType());
|
throw new UnresolvedClassException("Interfaces for class %s not fully resolved", getType());
|
||||||
}
|
}
|
||||||
|
|
||||||
return interfaces;
|
return interfaces;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -519,7 +525,7 @@ public class ClassProto implements TypeProto {
|
|||||||
if (!isInterface()) {
|
if (!isInterface()) {
|
||||||
addToVtable(getClassDef().getVirtualMethods(), virtualMethodList);
|
addToVtable(getClassDef().getVirtualMethods(), virtualMethodList);
|
||||||
|
|
||||||
for (ClassDef interfaceDef: getInterfaces().values()) {
|
for (ClassDef interfaceDef: getInterfacesFull().values()) {
|
||||||
addToVtable(interfaceDef.getVirtualMethods(), virtualMethodList);
|
addToVtable(interfaceDef.getVirtualMethods(), virtualMethodList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user