mirror of
https://github.com/morluto/rea.git
synced 2026-10-22 13:52:32 -05:00
* fix(native): parse renamed dyld_info re-exports dyld_info prints a re-export whose name differs from the source library's symbol as `[re-export] _foo_renamed (_foo from libfoo)`. The export parser only accepted `(from libfoo)`, so inspect_macho reported a nonexistent export named `_foo_renamed (_foo from libfoo)` with no source, and the nm row for `_foo_renamed` survived the name-based merge as a second export with reexport null. Accept the optional source symbol, trying the plain `(from lib)` form first so a library name containing ` from ` keeps its text. The row now reports `_foo_renamed` re-exported from libfoo and replaces the nm duplicate. The export schema has no field for the source symbol name, so exports coverage records a limitation when a renamed re-export is present. The golden fixture is a dyld_info capture of a synthetic dylib linked with -Wl,-alias,_foo,_foo_renamed. * fix(native): split dyld re-export suffix without nested quantifiers Replace the (?:(.+?)\s+)??from lazy-optional group with a linear string scan so malformed lines cannot backtrack and a library path containing " from " still keeps its whole text via the plain-form-first check. * test(native): cover nested re-export library names * fix(native): retain reexports missing from nm inventory --------- Co-authored-by: morluto <76467478+morluto@users.noreply.github.com> Co-authored-by: morluto <17176810+morluto@users.noreply.github.com>