提交 156e54c7 编写于 作者: S Skylot

core: exclude inner classes from class dependencies (#318)

上级 9752ec26
...@@ -152,8 +152,12 @@ public class MethodNode extends LineAttrNode implements ILoadable, IDexNode { ...@@ -152,8 +152,12 @@ public class MethodNode extends LineAttrNode implements ILoadable, IDexNode {
} }
instructions = null; instructions = null;
blocks = null; blocks = null;
enterBlock = null;
exitBlocks = null; exitBlocks = null;
exceptionHandlers.clear(); exceptionHandlers.clear();
sVars.clear();
region = null;
loops.clear();
} }
private boolean parseSignature() { private boolean parseSignature() {
......
...@@ -30,6 +30,7 @@ public class DependencyCollector extends AbstractVisitor { ...@@ -30,6 +30,7 @@ public class DependencyCollector extends AbstractVisitor {
processClass(inner, dex, depList); processClass(inner, dex, depList);
} }
depList.remove(cls); depList.remove(cls);
removeInnerClassesFromDeps(cls, depList);
return false; return false;
} }
...@@ -122,4 +123,11 @@ public class DependencyCollector extends AbstractVisitor { ...@@ -122,4 +123,11 @@ public class DependencyCollector extends AbstractVisitor {
depList.add(clsNode.getTopParentClass()); depList.add(clsNode.getTopParentClass());
} }
} }
private void removeInnerClassesFromDeps(ClassNode cls, Set<ClassNode> depList) {
cls.getInnerClasses().forEach(inner -> {
depList.remove(inner);
removeInnerClassesFromDeps(inner, depList);
});
}
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册