OPENHOOPS / 2K14Final team archive · November 9, 2026Reference libraryChecksums

Dated source reference. Current release status: handoff state. Full original relative paths are in the developer archive.

Native heap mutator lifetime join

November 8, 2026, 21:24 UTC. Private framework work; no packet capability is admitted.

The game heap has two additional mutation paths beyond allocate, reallocate, free, backing registration, initialization and clear. Virtual slot 4 at D9EDA0 calls the in-place helper at D9E950; virtual slot 5 at D9E660 can replace one block with two independently live spans. A wrapper or helper call is not read-only merely because it delegates its writes.

takeover/heap-mutator-code75.json pins the complete methods: 171 bytes for slot 4, 748 for partition and 1,091 for the in-place helper. It supersedes preliminary body extents in the static mutation-frontier report. Original text and rdata hashes are retained by the capture script. The CPU fixture executes original search, trees, unlinking, block writers, coalescing and validation; only byte fill/copy primitives are controlled.

packet75ld4 passes 504 Windows baseline/observed scenarios and 111,638 checks, preserving the original caller words, stack, registers, flags, FX state and LastError. Cases include three guard sizes, four debug levels, zero-size resize, movement, early and restorative failures, ordinary splits, invalid ranges/alignment, and zero-length surviving blocks. This is CPU proof, not a game-run acceptance.

The source registry withdraws the old generation before native mutation. Successful spans receive new generations. Failed direct mutators also issue a fresh generation for the retained block; a stale constructor binding cannot revive. Zero-length blocks retain only lifetime identity and grant no readable or delegated backing bytes. Results must stay in the original live backing region. A nested D9E950 call joins its exact outer reallocation and cannot record the same result twice. Descendant backing migration remains refused.

packet75le passes 362 Windows protocol checks, including wrong identity, thread, mutation, duplicate/overflowing spans, lost/reused backing and nested reallocation. The updated allocator event join, packet75lf, passes 574 Windows checks. Local ASan/UBSan and ThreadSanitizer checks pass. Existing source-memory regressions pass locally. Production and combined gates are being rebuilt from current inputs; older combined receipts remain historical.

The private allocator bootstrap is version 3, bounded to 144 rows because the current texture profile requires 129 exact patch windows. Versions 1 and 2 remain readable. This changes no public command, HTTP, native API or packet capability contract. Native admission still requires current source/free, context, code, command and effect closure. Other allocator delegation and backing-migration paths are not qualified by this component.