From df520a11341e0fa3a08ad339d44ac07baade46b5 Mon Sep 17 00:00:00 2001 From: S-trace Date: Wed, 25 Dec 2019 19:57:02 +0300 Subject: [PATCH] core: ClassNode: Check is field really static or not in loadStaticValues() Fixes appearing of the 0/null/false initializers for instance final fields. --- jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java b/jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java index 5615e858a..9e92e69a0 100644 --- a/jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java +++ b/jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java @@ -171,7 +171,9 @@ public class ClassNode extends LineAttrNode implements ILoadable, ICodeNode { private void loadStaticValues(ClassDef cls, List 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); } }