Projects STRLCPY jadx Commits 5f659c8d
🤬
Revision indexing in progress... (symbol navigation in revisions will be accurate after indexed)
  • ■ ■ ■ ■ ■ ■
    jadx-core/src/main/java/jadx/core/dex/visitors/typeinference/TypeSearch.java
    skipped 80 lines
    81 81   
    82 82   private boolean applyResolvedVars() {
    83 83   List<TypeSearchVarInfo> resolvedVars = state.getResolvedVars();
     84 + List<TypeSearchVarInfo> updatedVars = new ArrayList<>();
    84 85   for (TypeSearchVarInfo var : resolvedVars) {
    85 86   SSAVar ssaVar = var.getVar();
    86 87   ArgType resolvedType = var.getCurrentType();
     88 + if (!resolvedType.isTypeKnown()) {
     89 + // ignore unknown variables
     90 + continue;
     91 + }
     92 + if (resolvedType.equals(ssaVar.getTypeInfo().getType())) {
     93 + // type already set
     94 + continue;
     95 + }
    87 96   ssaVar.setType(resolvedType);
     97 + updatedVars.add(var);
    88 98   }
    89 99   boolean applySuccess = true;
    90  - for (TypeSearchVarInfo var : resolvedVars) {
    91  - if (!var.getCurrentType().isTypeKnown()) {
    92  - // exclude unknown variables
    93  - continue;
    94  - }
     100 + for (TypeSearchVarInfo var : updatedVars) {
    95 101   TypeUpdateResult res = typeUpdate.applyWithWiderIgnSame(mth, var.getVar(), var.getCurrentType());
    96 102   if (res == TypeUpdateResult.REJECT) {
    97 103   mth.addComment("JADX DEBUG: Multi-variable search result rejected for " + var);
    skipped 301 lines
  • ■ ■ ■ ■ ■
    jadx-core/src/test/java/jadx/tests/integration/types/TestPrimitiveConversion2.java
    skipped 17 lines
    18 18   .doesNotContain("z2 | 2")
    19 19   .containsOne("(z2 ? 1 : 0) | 2")
    20 20   .containsOne("if (z2 && formatCurrency != null) {")
    21  - .containsOne("i = 1;")
    22  - .containsOne("spannable = null;");
     21 + .containsOne("i = 1;");
    23 22   }
    24 23  }
    25 24   
Please wait...
Page is in error, reload to recover