diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/de/fernflower/main/ClassesProcessor.java | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/de/fernflower/main/ClassesProcessor.java b/src/de/fernflower/main/ClassesProcessor.java index 5155798..07ca4eb 100644 --- a/src/de/fernflower/main/ClassesProcessor.java +++ b/src/de/fernflower/main/ClassesProcessor.java @@ -162,10 +162,16 @@ public class ClassesProcessor { String superClass = stack.removeFirst(); ClassNode supernode = mapRootClasses.get(superClass); - + HashSet<String> setNestedClasses = mapNestedClassReferences.get(superClass); if(setNestedClasses != null) { - for(String nestedClass : setNestedClasses) { + StructClass scl = supernode.classStruct; + StructInnerClassesAttribute inner = (StructInnerClassesAttribute)scl.getAttributes().getWithKey("InnerClasses"); + for(int i=0;i<inner.getStringentries().size();i++) { + String nestedClass = inner.getStringentries().get(i)[0]; + if(!setNestedClasses.contains(nestedClass)) { + continue; + } if(setVisited.contains(nestedClass)) { continue; |