INNER CODE UNIT · Java

read

anggrayudi/android-hidden-api · cli/ClosureVerify.java:80

    public static ClassNode read(InputStream in) throws IOException {
        ClassNode cn = new ClassNode();
        new ClassReader(in).accept(cn, ClassReader.SKIP_CODE | ClassReader.SKIP_DEBUG | ClassReader.SKIP_FRAMES);
        return cn;
    }

    // ------------------------------------------------------------------ verify (gate 4)
    private static int verify(Map<String, ClassNode> all) {
        ClassLoader jdk = ClassLoader.getSystemClassLoader();
        Map<String, Boolean> jdkCache = new HashMap<>();
        List<String> hard = new ArrayList<>();
        TreeMap<String, Integer> soft = new TreeMap<>();
        for (ClassNode cn : all.values()) {
            for (String r : supers(cn)) {
                if (all.containsKey(r) || jdkLoadable(r, jdk, jdkCache)) continue;
                if (isHardNs(r)) { if (hard.size() < 50) hard.add(cn.name + "  ->  " + r); }
                else soft.merge(namespace(r), 1, Integer::sum);
            }

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…