Fixed wrong order of static initializations (probably part of IDEA-127465)

master
Stiver 11 years ago
parent e098fbf669
commit 1a8e8ba7a2
  1. 7
      src/de/fernflower/main/InitializerProcessor.java

@ -138,7 +138,11 @@ public class InitializerProcessor {
AssignmentExprent asexpr = (AssignmentExprent)exprent; AssignmentExprent asexpr = (AssignmentExprent)exprent;
if(asexpr.getLeft().type == Exprent.EXPRENT_FIELD) { if(asexpr.getLeft().type == Exprent.EXPRENT_FIELD) {
FieldExprent fexpr = (FieldExprent)asexpr.getLeft(); FieldExprent fexpr = (FieldExprent)asexpr.getLeft();
if(fexpr.isStatic() && fexpr.getClassname().equals(cl.qualifiedName)) { if(fexpr.isStatic() && fexpr.getClassname().equals(cl.qualifiedName) &&
cl.hasField(fexpr.getName(), fexpr.getDescriptor().descriptorString)) {
if(isExprentIndependent(asexpr.getRight(), meth)) {
String keyField = InterpreterUtil.makeUniqueKey(fexpr.getName(), fexpr.getDescriptor().descriptorString); String keyField = InterpreterUtil.makeUniqueKey(fexpr.getName(), fexpr.getDescriptor().descriptorString);
if(!wrapper.getStaticFieldInitializers().containsKey(keyField)) { if(!wrapper.getStaticFieldInitializers().containsKey(keyField)) {
wrapper.getStaticFieldInitializers().addWithKey(asexpr.getRight(), keyField); wrapper.getStaticFieldInitializers().addWithKey(asexpr.getRight(), keyField);
@ -148,6 +152,7 @@ public class InitializerProcessor {
} }
} }
} }
}
if(!found) { if(!found) {
break; break;

Loading…
Cancel
Save