|
|
@ -138,12 +138,17 @@ 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) && |
|
|
|
String keyField = InterpreterUtil.makeUniqueKey(fexpr.getName(), fexpr.getDescriptor().descriptorString); |
|
|
|
cl.hasField(fexpr.getName(), fexpr.getDescriptor().descriptorString)) { |
|
|
|
if(!wrapper.getStaticFieldInitializers().containsKey(keyField)) { |
|
|
|
|
|
|
|
wrapper.getStaticFieldInitializers().addWithKey(asexpr.getRight(), keyField); |
|
|
|
if(isExprentIndependent(asexpr.getRight(), meth)) { |
|
|
|
firstdata.getExprents().remove(0); |
|
|
|
|
|
|
|
found = true; |
|
|
|
String keyField = InterpreterUtil.makeUniqueKey(fexpr.getName(), fexpr.getDescriptor().descriptorString); |
|
|
|
|
|
|
|
if(!wrapper.getStaticFieldInitializers().containsKey(keyField)) { |
|
|
|
|
|
|
|
wrapper.getStaticFieldInitializers().addWithKey(asexpr.getRight(), keyField); |
|
|
|
|
|
|
|
firstdata.getExprents().remove(0); |
|
|
|
|
|
|
|
found = true; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|