core: ClassNode: Check is field really static or not in loadStaticValues()

Fixes appearing of the 0/null/false initializers for instance final fields.
This commit is contained in:
S-trace
2019-12-25 19:57:02 +03:00
committed by Soul Trace
parent f90fc1d5ec
commit df520a1134
@@ -171,7 +171,9 @@ public class ClassNode extends LineAttrNode implements ILoadable, ICodeNode {
private void loadStaticValues(ClassDef cls, List<FieldNode> staticFields) throws DecodeException {
for (FieldNode f : staticFields) {
if (f.getAccessFlags().isFinal()) {
AccessInfo flags = f.getAccessFlags();
if (flags.isStatic() && flags.isFinal()) {
LOG.debug("loadStaticValues(): Adding NULL initializer to static final field {}", f.getAlias());
f.addAttr(FieldInitAttr.NULL_VALUE);
}
}