diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/EnumVisitor.java b/jadx-core/src/main/java/jadx/core/dex/visitors/EnumVisitor.java index eda230027..1007e4691 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/EnumVisitor.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/EnumVisitor.java @@ -192,12 +192,13 @@ public class EnumVisitor extends AbstractVisitor { if (ctrMth != null) { markArgsForSkip(ctrMth); } - if (co.getResult().getSVar().getUseList().size() <= 2) { + RegisterArg coResArg = co.getResult(); + if (coResArg == null || coResArg.getSVar().getUseList().size() <= 2) { InsnRemover.removeWithoutUnbind(classInitMth, staticBlock, co); } else { // constructor result used in other places -> replace constructor with enum field get (SGET) IndexInsnNode enumGet = new IndexInsnNode(InsnType.SGET, enumField.getField().getFieldInfo(), 0); - enumGet.setResult(co.getResult().duplicate()); + enumGet.setResult(coResArg.duplicate()); BlockUtils.replaceInsn(classInitMth, staticBlock, co, enumGet); } }