Search in sources :

Example 6 with ClassDef

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;
}
Also used : ClassDef(com.android.dex.ClassDef) HashSet(java.util.HashSet)

Example 7 with ClassDef

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++;
    }
}
Also used : ClassDef(com.android.dex.ClassDef)

Example 8 with ClassDef

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);
    }
}
Also used : ClassDef(com.android.dex.ClassDef)

Aggregations

ClassDef (com.android.dex.ClassDef)8 ClassData (com.android.dex.ClassData)2 DexException (com.android.dex.DexException)2 EncodedValueReader (com.android.dex.EncodedValueReader)1 HashSet (java.util.HashSet)1