From 71bf2aa59f0b2e5b9982eccc8586b936e4b9e374 Mon Sep 17 00:00:00 2001 From: Skylot Date: Wed, 4 Nov 2020 20:21:24 +0000 Subject: [PATCH] fix: don't apply const split if not needed --- .../core/dex/visitors/typeinference/TypeInferenceVisitor.java | 4 ++++ .../tests/integration/types/TestPrimitiveConversion2.java | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/typeinference/TypeInferenceVisitor.java b/jadx-core/src/main/java/jadx/core/dex/visitors/typeinference/TypeInferenceVisitor.java index 8690e88c3..873011b74 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/typeinference/TypeInferenceVisitor.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/typeinference/TypeInferenceVisitor.java @@ -586,6 +586,10 @@ public final class TypeInferenceVisitor extends AbstractVisitor { } private boolean checkAndSplitConstInsn(MethodNode mth, SSAVar var) { + ArgType type = var.getTypeInfo().getType(); + if (type.isTypeKnown() || var.isTypeImmutable()) { + return false; + } if (var.getUsedInPhi().size() < 2) { return false; } diff --git a/jadx-core/src/test/java/jadx/tests/integration/types/TestPrimitiveConversion2.java b/jadx-core/src/test/java/jadx/tests/integration/types/TestPrimitiveConversion2.java index c3364f661..81ee6f059 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/types/TestPrimitiveConversion2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/types/TestPrimitiveConversion2.java @@ -17,6 +17,8 @@ public class TestPrimitiveConversion2 extends SmaliTest { .doesNotContain("z2 == 0") .doesNotContain("z2 | 2") .containsOne("(z2 ? 1 : 0) | 2") - .containsOne("if (z2 && formatCurrency != null) {"); + .containsOne("if (z2 && formatCurrency != null) {") + .containsOne("i = 1;") + .containsOne("spannable = null;"); } }