INNER CODE UNIT · Java
soakDangling
anggrayudi/android-hidden-api · cli/ClosureVerify.java:139
public static Set<String> soakDangling(Map<String, ClassNode> all) {
ClassLoader jdk = ClassLoader.getSystemClassLoader();
Map<String, Boolean> jdkCache = new HashMap<>();
Set<String> present = new HashSet<>(all.keySet());
Set<String> removed = new HashSet<>();
boolean changed = true;
while (changed) {
changed = false;
List<String> drop = new ArrayList<>();
for (String name : present) {
for (String r : supers(all.get(name))) {
if (present.contains(r) || jdkLoadable(r, jdk, jdkCache)) continue;
drop.add(name);
break;
}
}
if (!drop.isEmpty()) {
present.removeAll(drop);