Files
morlutoandTaksh 63c65a2243 fix(android): recover original bodies when Java source is omitted
Resolve smali using frozen raw method names and full DEX descriptors. Select
one complete block before truncation for missing Java, static initializers
and decompiler marker fallbacks. Reject ambiguous or incomplete blocks and
preserve upstream disassembly failure notes.

Bind method replies to the selected descriptor with bridge protocol 3.
Remove consumer placeholder/error-prefix interpretations and the superseded
blanket overload fallback rejection. Producer failures now use the shared
failed-tool path before truncation. Migrate protocol fixtures and consumers.

Adapt the direct selector guard from PR #3450; recover original bytecode
instead of inferring a holder from generated comments.

Validation: 122 focused tests in 9 files; real pinned-JAR baseline regression
fails and candidate passes, including overloads, aliases after generation,
branches/handlers, 16-byte output and negative selection controls. Nine real
CLI and nine MCP fixture calls pass with parity/identity/digest/no-mutation
checks. Static/docs checks and two source reviews pass. Six completed real
MCP cost workflows recorded; same calls with improved source, no speedup
claim. Tiny authored APKs, macOS/JDK 21 only; reported editor APK and native
Linux/Windows unverified. Heavy profiling and stress remain stopped.

Fixes #3443

Co-authored-by: Taksh <takshkothari09@gmail.com>
2026-10-18 00:25:36 +08:00

46 lines
1.1 KiB
Smali

.class public Lfixture/MergedMethod;
.super Ljava/lang/Object;
.field public static VALUE:I
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private highlightText()V
.registers 2
:try_start
sget v0, Lfixture/MergedMethod;->VALUE:I
if-nez v0, :assigned
const/16 v0, 0x77
sput v0, Lfixture/MergedMethod;->VALUE:I
:assigned
:try_end
return-void
.catch Ljava/lang/RuntimeException; {:try_start .. :try_end} :handler
:handler
move-exception v0
throw v0
.end method
.method private highlightText(I)V
.registers 2
const/16 p1, 0x2a
sput p1, Lfixture/MergedMethod;->VALUE:I
return-void
.end method
.method public synthetic lambda$highlight$0()V
.registers 1
invoke-direct {p0}, Lfixture/MergedMethod;->highlightText()V
return-void
.end method
.method public decoy()Ljava/lang/String;
.registers 2
const-string v0, "renamed from: highlightText, reason: merged with bridge method [inline-methods]"
return-object v0
.end method