mirror of
https://github.com/morluto/rea.git
synced 2026-10-26 17:35:11 +00:00
fix(native): preserve selected paths and binding identities
Reuse filesystem-aware path selection for resource-only plist sessions so directory symlinks and trailing separators retain their meaning. Parse dyld bind names once as lossless text or exact bytes, preserving partial binding facts and independent valid metadata without invented class identities. Keep coverage issues separate from known opcode applicability and exercise both producer and generated Mach-O consumers.
This commit is contained in:
1 parent
64fa1db130
commit
76500f12b5
7 files changed
+469
-55
No files matched your search
@@ -467,6 +467,12 @@ unreadable default plist of another target reports `capability_unavailable`.
|
||||
Permission failures remain `access_denied`; output and cleanup failures retain
|
||||
their own error categories.
|
||||
|
||||
Selected plist paths preserve filesystem resolution, including `..` after a
|
||||
directory symlink and trailing directory separators. Resource-only bundle
|
||||
sessions resolve relative selections from the bundle root with the same path
|
||||
semantics as executable sessions; the reported source path retains those
|
||||
selected segments.
|
||||
|
||||
A conversion refusal includes plutil's diagnostic from either output stream.
|
||||
`details.captured_output` retains bounded stdout/stderr excerpts, observed byte
|
||||
totals and exit status. `truncated: true` means those excerpts are incomplete.
|
||||
@@ -700,6 +706,16 @@ complete observation.
|
||||
arm64e formats;
|
||||
- legacy `LC_DYLD_INFO` rebase and bind opcodes.
|
||||
|
||||
[dyld symbol names are byte strings](https://github.com/apple-oss-distributions/dyld/blob/dyld-1330/mach_o/BindOpcodes.cpp#L203-L208),
|
||||
compared with [`strcmp`](https://github.com/apple-oss-distributions/dyld/blob/dyld-1330/mach_o/BindOpcodes.cpp#L42-L56).
|
||||
When a name has no lossless UTF-8 text
|
||||
projection, the affected binding remains unresolved and pointer-fixup
|
||||
coverage is partial; later readable bindings and other metadata survive.
|
||||
The internal fixup reader retains the exact name bytes and parsed binding
|
||||
fields, while public Objective-C and Swift results retain the unresolved
|
||||
reason instead of publishing a guessed symbol or class name. A literal
|
||||
U+FFFD in valid UTF-8 remains a known symbol character.
|
||||
|
||||
A Swift conformance whose type or protocol reference is an external bind
|
||||
keeps its name as `null` and carries the raw dyld identity in
|
||||
`type_binding` or `protocol_binding`; that record and its facet coverage are
|
||||
|
||||
Reference in new issue
Block a user