From 60a8d8b9fdc0118abb0d7f7300b880cbc24a3ce4 Mon Sep 17 00:00:00 2001 From: Skylot <118523+skylot@users.noreply.github.com> Date: Mon, 23 Dec 2024 21:18:04 +0000 Subject: [PATCH] fix: show all methods for 'simple' and 'fallback' decompilation modes --- .../src/main/java/jadx/api/DecompilationMode.java | 15 ++++++++++++++- .../src/main/java/jadx/core/codegen/ClassGen.java | 4 ++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/jadx-core/src/main/java/jadx/api/DecompilationMode.java b/jadx-core/src/main/java/jadx/api/DecompilationMode.java index bfb43875e..15e79a86c 100644 --- a/jadx-core/src/main/java/jadx/api/DecompilationMode.java +++ b/jadx-core/src/main/java/jadx/api/DecompilationMode.java @@ -19,5 +19,18 @@ public enum DecompilationMode { /** * Raw instructions without modifications */ - FALLBACK + FALLBACK; + + public boolean isSpecial() { + switch (this) { + case AUTO: + case RESTRUCTURE: + return false; + case SIMPLE: + case FALLBACK: + return true; + default: + throw new RuntimeException("Unexpected decompilation mode: " + this); + } + } } diff --git a/jadx-core/src/main/java/jadx/core/codegen/ClassGen.java b/jadx-core/src/main/java/jadx/core/codegen/ClassGen.java index 765fa2ab2..7c9ff67c1 100644 --- a/jadx-core/src/main/java/jadx/core/codegen/ClassGen.java +++ b/jadx-core/src/main/java/jadx/core/codegen/ClassGen.java @@ -347,6 +347,10 @@ public class ClassGen { * Additional checks for inlined methods */ private boolean skipMethod(MethodNode mth) { + if (cls.root().getArgs().getDecompilationMode().isSpecial()) { + // show all methods for special decompilation modes + return false; + } MethodInlineAttr inlineAttr = mth.get(AType.METHOD_INLINE); if (inlineAttr == null || inlineAttr.notNeeded()) { return false;