core: exclude inner classes from class dependencies (#318)
This commit is contained in:
@@ -152,8 +152,12 @@ public class MethodNode extends LineAttrNode implements ILoadable, IDexNode {
|
||||
}
|
||||
instructions = null;
|
||||
blocks = null;
|
||||
enterBlock = null;
|
||||
exitBlocks = null;
|
||||
exceptionHandlers.clear();
|
||||
sVars.clear();
|
||||
region = null;
|
||||
loops.clear();
|
||||
}
|
||||
|
||||
private boolean parseSignature() {
|
||||
|
||||
@@ -30,6 +30,7 @@ public class DependencyCollector extends AbstractVisitor {
|
||||
processClass(inner, dex, depList);
|
||||
}
|
||||
depList.remove(cls);
|
||||
removeInnerClassesFromDeps(cls, depList);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -122,4 +123,11 @@ public class DependencyCollector extends AbstractVisitor {
|
||||
depList.add(clsNode.getTopParentClass());
|
||||
}
|
||||
}
|
||||
|
||||
private void removeInnerClassesFromDeps(ClassNode cls, Set<ClassNode> depList) {
|
||||
cls.getInnerClasses().forEach(inner -> {
|
||||
depList.remove(inner);
|
||||
removeInnerClassesFromDeps(inner, depList);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user