Files
BFM-decomp/tools
Drew T fc9b191806 fix(jr_inventory): ownership has three sources, not one — unblocks 8 binaries' carves
jr_inventory R32-aborted on 36 committed .rodata carves across 8 binaries with
"ownership is not 1:1 — a stranded/duplicated carve", blocking the whole §322b
carve route. Every one of those binaries is BYTE-GREEN (R22 213/213), so the config
was right and the MODEL was blind (R34). Measured, the two blind spots:

  1. THE SUBSEG NAME IS THE OWNERSHIP RECORD -- 32 of 36 (89%). The isolate
     convention writes the owner into the name: a carve in `<ov>_jr_<ADDR>` belongs
     to func_<ADDR>. Several owners are RESIDENT-range (0x80135D20, 0x8015C32C)
     instantiated through a shared macro, so they are not overlay-local definitions
     and parse_overlay_c cannot see them at all. Reading the name is R33.
  2. A CARVE FOR A STILL-STUBBED FUNCTION IS PENDING, NOT STRANDED -- the other 4.
     ov_SC07_010's func_8016AB6C references its carve at 0x801A6460 from an
     INCLUDE_ASM stub.

A carve with none of the three still aborts loudly -- that is the real corruption
the assertion exists to catch (§8b func_801734BC class).

  jr_isolate_all --dry-run over the carve set: 7 PASS / 10 FAIL -> 15 PASS / 2 FAIL.
  The 2 remaining are the §323 file-local-type class §322b already predicted
  (ov_SC02_017 typedef, ov_SC03_029 "carry the naming type").
2026-09-01 21:18:52 -06:00
..