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);
}