use of com.android.dex.ClassDef in project buck by facebook.
the class FindUsages method findAssignableTypes.
/**
* Returns the set of types that can be assigned to {@code typeIndex}.
*/
private Set<Integer> findAssignableTypes(Dex dex, int typeIndex) {
Set<Integer> assignableTypes = new HashSet<Integer>();
assignableTypes.add(typeIndex);
for (ClassDef classDef : dex.classDefs()) {
if (assignableTypes.contains(classDef.getSupertypeIndex())) {
assignableTypes.add(classDef.getTypeIndex());
continue;
}
for (int implemented : classDef.getInterfaces()) {
if (assignableTypes.contains(implemented)) {
assignableTypes.add(classDef.getTypeIndex());
break;
}
}
}
return assignableTypes;
}
use of com.android.dex.ClassDef in project buck by facebook.
the class DexIndexPrinter method printClassDefs.
private void printClassDefs() {
int index = 0;
for (ClassDef classDef : dex.classDefs()) {
System.out.println("class def " + index + ": " + classDef);
index++;
}
}
use of com.android.dex.ClassDef in project jadx by skylot.
the class DexNode method loadClasses.
public void loadClasses() throws DecodeException {
for (ClassDef cls : dexBuf.classDefs()) {
ClassNode clsNode = new ClassNode(this, cls);
classes.add(clsNode);
clsMap.put(clsNode.getClassInfo(), clsNode);
}
}
Aggregations