summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/de/fernflower/main/ClassesProcessor.java10
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;