diff --git a/jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java b/jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java index 757070fa72db2f4067f85c8a894df35af40875ee..327a738d61f5cf4472ef7b8e17524ddd985d1b7b 100644 --- a/jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java +++ b/jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java @@ -354,8 +354,7 @@ public class ClassNode extends LineAttrNode implements ILoadable, IDexNode { if (parentClass == null) { if (clsInfo.isInner()) { ClassNode parent = dex().resolveClass(clsInfo.getParentClass()); - parent = parent == null ? this : parent; - parentClass = parent; + parentClass = parent == null ? this : parent; } else { parentClass = this; } @@ -365,7 +364,7 @@ public class ClassNode extends LineAttrNode implements ILoadable, IDexNode { public ClassNode getTopParentClass() { ClassNode parent = getParentClass(); - return parent == this ? this : parent.getParentClass(); + return parent == this ? this : parent.getTopParentClass(); } public List getInnerClasses() { 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 4d8ffc9c8acdb17f4725316d370f5f69c96a076f..558ef3fb4e97bb368c855c85b5328c7afbfccbd6 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,7 +30,6 @@ public class DependencyCollector extends AbstractVisitor { processClass(inner, dex, depList); } depList.remove(cls); - removeInnerClassesFromDeps(cls, depList); return false; } @@ -123,11 +122,4 @@ 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); - }); - } }