- Fix adjacent-function corruption on darwin/arm64 when
ApplyFunc/ApplyCorewrites a 24-byte jump into a function shorter than 24 bytes. Function-entry patches now use the existing 4-byte branch plus an executable trampoline, the same pathApplyPrivateMethodalready uses. - Fix an amd64 crash (
invalid runtime symbol table) when CPU profiling or stack unwinding samples a patched entry. The entry is now a 5-byteJMP rel32into aNOSPLIT/NOFRAMEtrampoline with zero stack delta, so Go no longer reads the original function'spcsptable atentry+10.OriginandResetkeep and release that trampoline. The pool has 256 slots and the target must be within rel32 range; if none is reachable, patching fails before the target code is modified.
Reference: #192