summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoman Shevchenko <roman.shevchenko@jetbrains.com>2014-05-20 20:45:05 +0400
committerRoman Shevchenko <roman.shevchenko@jetbrains.com>2014-05-20 20:59:18 +0400
commit634b1faa5bdd1d333789c3557f5bf4a84071f791 (patch)
treea94ebbe66d7ce7d1f47a50fed4e39b877acbedc3
parent310058e6ebb570413b1ed1211163bfa842ba4acc (diff)
downloadfernflower-634b1faa5bdd1d333789c3557f5bf4a84071f791.tar
fernflower-634b1faa5bdd1d333789c3557f5bf4a84071f791.tar.gz
fernflower-634b1faa5bdd1d333789c3557f5bf4a84071f791.tar.lz
fernflower-634b1faa5bdd1d333789c3557f5bf4a84071f791.tar.xz
fernflower-634b1faa5bdd1d333789c3557f5bf4a84071f791.zip
order of inner classes preserved
-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;