Freeze body-absence access flags with stable parsed method identity, before code generation can rewrite method metadata. Skip source slicing for these methods and return unavailable empty source with explicit native/abstract markers, rather than attributing neighbouring members to the selected method. Adapt the access-flag guard and tiny Smali fixtures from PR #3527. Extend real metadata and public CLI/MCP regressions for native, static native, abstract, concrete overloads and re-reading frozen facts after neighbouring generation. Rename the expanded method-body verifier and remove its old entry point. Validation: 72 focused tests in 3 files; real pinned-JAR baseline control fails and candidate passes without triggering code generation; 6 real CLI and 6 MCP fixture calls with parity, identity and unchanged APK; docs/static checks and two source reviews. Six measured real MCP workflows, no speedup claim. Tiny authored APK only; reported BinaryEye, Linux/Windows and browser workflows unverified. Heavy profiling/stress remain stopped. Fixes #3488 Co-authored-by: balkan16 <57933796+balkan16@users.noreply.github.com>
29 lines
799 B
Smali
29 lines
799 B
Smali
.class public final Lfixture/NativeOverload;
|
|
.super Ljava/lang/Object;
|
|
|
|
.method public constructor <init>()V
|
|
.registers 1
|
|
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
|
|
return-void
|
|
.end method
|
|
|
|
.method public static native zLastNative()V
|
|
.end method
|
|
|
|
.method public final native readBuffer(Ljava/nio/ByteBuffer;I)Ljava/lang/String;
|
|
.end method
|
|
|
|
.method public final readBuffer(Ljava/nio/ByteBuffer;Ljava/lang/String;)Ljava/lang/String;
|
|
.registers 4
|
|
const/4 v0, 0x0
|
|
invoke-virtual {p0, p1, v0}, Lfixture/NativeOverload;->readBuffer(Ljava/nio/ByteBuffer;I)Ljava/lang/String;
|
|
move-result-object v0
|
|
return-object v0
|
|
.end method
|
|
|
|
.method public final toText(Z)Ljava/lang/String;
|
|
.registers 3
|
|
const-string v0, "neighbour-member"
|
|
return-object v0
|
|
.end method
|