INNER CODE UNIT · Java

loadDir

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

    private static void loadDir(Path dir, Map<String, ClassNode> all) throws IOException {
        List<Path> paths = new ArrayList<>();
        try (Stream<Path> s = Files.walk(dir)) {
            s.filter(p -> p.toString().endsWith(".class")).forEach(paths::add);
        }
        for (Path p : paths) {
            try (InputStream in = Files.newInputStream(p)) {
                ClassNode cn = read(in);
                all.put(cn.name, cn);
            }
        }
    }

    /** Parses a class's header only (no code/frames/debug) — all we need is super + interfaces. */
    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;

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…