diff --git a/jadx-core/src/main/java/jadx/core/dex/nodes/MethodNode.java b/jadx-core/src/main/java/jadx/core/dex/nodes/MethodNode.java index 47b1a98e42562f3fb76036586888296b64a5ea75..cb48bec2e5c2503959b02279ad3fb7721d573b52 100644 --- a/jadx-core/src/main/java/jadx/core/dex/nodes/MethodNode.java +++ b/jadx-core/src/main/java/jadx/core/dex/nodes/MethodNode.java @@ -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() { diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/DependencyCollector.java b/jadx-core/src/main/java/jadx/core/dex/visitors/DependencyCollector.java index 558ef3fb4e97bb368c855c85b5328c7afbfccbd6..4d8ffc9c8acdb17f4725316d370f5f69c96a076f 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/DependencyCollector.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/DependencyCollector.java @@ -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 depList) { + cls.getInnerClasses().forEach(inner -> { + depList.remove(inner); + removeInnerClassesFromDeps(inner, depList); + }); + } }