diff options
author | Roman Shevchenko <roman.shevchenko@jetbrains.com> | 2014-05-20 20:45:05 +0400 |
---|---|---|
committer | Roman Shevchenko <roman.shevchenko@jetbrains.com> | 2014-05-20 20:59:18 +0400 |
commit | 634b1faa5bdd1d333789c3557f5bf4a84071f791 (patch) | |
tree | a94ebbe66d7ce7d1f47a50fed4e39b877acbedc3 /src/de | |
parent | 310058e6ebb570413b1ed1211163bfa842ba4acc (diff) | |
download | fernflower-634b1faa5bdd1d333789c3557f5bf4a84071f791.tar fernflower-634b1faa5bdd1d333789c3557f5bf4a84071f791.tar.gz fernflower-634b1faa5bdd1d333789c3557f5bf4a84071f791.tar.lz fernflower-634b1faa5bdd1d333789c3557f5bf4a84071f791.tar.xz fernflower-634b1faa5bdd1d333789c3557f5bf4a84071f791.zip |
order of inner classes preserved
Diffstat (limited to 'src/de')
-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; |