From 03ae3bcefa531ded62a51f6753d797ac8484c2b6 Mon Sep 17 00:00:00 2001 From: Skylot Date: Mon, 18 Mar 2019 16:41:45 +0300 Subject: [PATCH] fix: process field init code in dependency collector (#467) --- .../java/jadx/core/dex/visitors/DependencyCollector.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/DependencyCollector.java b/jadx-core/src/main/java/jadx/core/dex/visitors/DependencyCollector.java index 92cffd845..bc0254389 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/DependencyCollector.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/DependencyCollector.java @@ -18,6 +18,7 @@ import jadx.core.dex.nodes.DexNode; import jadx.core.dex.nodes.FieldNode; import jadx.core.dex.nodes.InsnNode; import jadx.core.dex.nodes.MethodNode; +import jadx.core.dex.nodes.parser.FieldInitAttr; import jadx.core.utils.exceptions.JadxException; public class DependencyCollector extends AbstractVisitor { @@ -41,6 +42,12 @@ public class DependencyCollector extends AbstractVisitor { } for (FieldNode fieldNode : cls.getFields()) { addDep(dex, depList, fieldNode.getType()); + + // process instructions from field init + FieldInitAttr fieldInitAttr = fieldNode.get(AType.FIELD_INIT); + if (fieldInitAttr != null && fieldInitAttr.getValueType() == FieldInitAttr.InitType.INSN) { + processInsn(dex, depList, fieldInitAttr.getInsn()); + } } // TODO: process annotations and generics for (MethodNode methodNode : cls.getMethods()) {