diff --git a/jadx-core/src/main/java/jadx/core/ProcessClass.java b/jadx-core/src/main/java/jadx/core/ProcessClass.java index 1631f21e1..3f155edb5 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 a5b5329b6..1730cd394 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));