From 89e95eb9eefae4de47fa0dfc950c079875ae8b44 Mon Sep 17 00:00:00 2001 From: Skylot Date: Sat, 12 Feb 2022 19:15:18 +0000 Subject: [PATCH] fix: correct code reload after rename (#1378) --- jadx-core/src/main/java/jadx/core/ProcessClass.java | 8 ++++---- .../src/main/java/jadx/core/dex/visitors/ModVisitor.java | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/jadx-core/src/main/java/jadx/core/ProcessClass.java b/jadx-core/src/main/java/jadx/core/ProcessClass.java index 1631f21e..3f155edb 100644 --- a/jadx-core/src/main/java/jadx/core/ProcessClass.java +++ b/jadx-core/src/main/java/jadx/core/ProcessClass.java @@ -40,11 +40,11 @@ public final class ProcessClass { cls.remove(AFlag.CLASS_UNLOADED); cls.root().runPreDecompileStageForClass(cls); } + if (cls.getState() == GENERATED_AND_UNLOADED) { + // force loading code again + cls.setState(NOT_LOADED); + } if (codegen) { - if (cls.getState() == GENERATED_AND_UNLOADED) { - // allow to run code generation again - cls.setState(NOT_LOADED); - } cls.setLoadStage(LoadStage.CODEGEN_STAGE); if (cls.contains(AFlag.RELOAD_AT_CODEGEN_STAGE)) { cls.remove(AFlag.RELOAD_AT_CODEGEN_STAGE); diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/ModVisitor.java b/jadx-core/src/main/java/jadx/core/dex/visitors/ModVisitor.java index a5b5329b..1730cd39 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/ModVisitor.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/ModVisitor.java @@ -457,7 +457,7 @@ public class ModVisitor extends AbstractVisitor { } SkipMethodArgsAttr attr = callMth.get(AType.SKIP_MTH_ARGS); if (attr != null) { - int argsCount = Math.min(callMth.getArgRegs().size(), co.getArgsCount()); + int argsCount = Math.min(callMth.getMethodInfo().getArgsCount(), co.getArgsCount()); for (int i = 0; i < argsCount; i++) { if (attr.isSkip(i)) { anonymousCallArgMod(co.getArg(i)); -- GitLab