From aec8ebe23760ec0181e652e48af6217bfee1cf5f Mon Sep 17 00:00:00 2001 From: Skylot Date: Thu, 29 Oct 2020 18:12:54 +0000 Subject: [PATCH] fix: reload request for correct class in method inline visitor (#999) --- jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java | 2 +- .../src/main/java/jadx/core/dex/visitors/InlineMethods.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java b/jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java index cc5ce0b29..24934a272 100644 --- a/jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java +++ b/jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java @@ -586,7 +586,7 @@ public class ClassNode extends NotificationAttrNode implements ILoadable, ICodeN public void reloadAtCodegenStage() { ClassNode topCls = this.getTopParentClass(); if (topCls.getLoadStage() == LoadStage.CODEGEN_STAGE) { - throw new JadxRuntimeException("Class not yet loaded at codegen stage"); + throw new JadxRuntimeException("Class not yet loaded at codegen stage: " + topCls); } topCls.add(AFlag.RELOAD_AT_CODEGEN_STAGE); } diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/InlineMethods.java b/jadx-core/src/main/java/jadx/core/dex/visitors/InlineMethods.java index 72e58ce11..148fbda33 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/InlineMethods.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/InlineMethods.java @@ -57,7 +57,7 @@ public class InlineMethods extends AbstractVisitor { MethodInlineAttr mia = MarkMethodsForInline.process(callMth); if (mia == null) { // method not yet loaded => will retry at codegen stage - mth.getParentClass().reloadAtCodegenStage(); + callMth.getParentClass().reloadAtCodegenStage(); return; } if (mia.notNeeded()) { @@ -65,7 +65,7 @@ public class InlineMethods extends AbstractVisitor { } inlineMethod(mth, callMth, mia, block, insn); } catch (Exception e) { - throw new JadxRuntimeException("Failed to process method for inline", e); + throw new JadxRuntimeException("Failed to process method for inline: " + callMthInfo, e); } }