order of inner classes preserved

This commit is contained in:
Roman Shevchenko 2014-05-20 20:45:05 +04:00
parent 310058e6eb
commit 634b1faa5b

View File

@ -162,10 +162,16 @@ public class ClassesProcessor {
String superClass = stack.removeFirst(); String superClass = stack.removeFirst();
ClassNode supernode = mapRootClasses.get(superClass); ClassNode supernode = mapRootClasses.get(superClass);
HashSet<String> setNestedClasses = mapNestedClassReferences.get(superClass); HashSet<String> setNestedClasses = mapNestedClassReferences.get(superClass);
if(setNestedClasses != null) { 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)) { if(setVisited.contains(nestedClass)) {
continue; continue;