mirror of
https://github.com/Cesarus85/ringfall-mjolnir-vr.git
synced 2026-10-17 16:00:26 +02:00
Admit five strict-exact Halo objects after ownership audit
This commit is contained in:
1 parent
fe77cd542f
commit
95f68ad3ce
3 files changed
+91
-9
No files matched your search
+5
-5
@@ -446,7 +446,7 @@
|
||||
{ "name": "source/shaders/shaders.c", "index": 71, "status": "Matching" },
|
||||
{ "name": "source/shaders/shader_definitions.c", "index": 72, "status": "Matching" },
|
||||
{ "name": "source/scenario/wind_definitions.c", "index": 73, "status": "Matching" },
|
||||
{ "name": "source/scenario/wind.c", "index": 74, "status": "NonMatching" },
|
||||
{ "name": "source/scenario/wind.c", "index": 74, "status": "Matching" },
|
||||
{ "name": "source/scenario/sky_definitions.c", "index": 75, "status": "Matching" },
|
||||
{ "name": "source/scenario/scenario_definitions.c", "index": 76, "status": "Matching" },
|
||||
{ "name": "source/scenario/scenario.c", "index": 77, "status": "Matching" },
|
||||
@@ -560,7 +560,7 @@
|
||||
{ "name": "source/models/model_animations.c", "index": 185, "status": "NonMatching" },
|
||||
{ "name": "source/models/model_animation_definitions.c", "index": 186, "status": "Matching" },
|
||||
{ "name": "source/memory/texture_page.c", "index": 187, "status": "Matching" },
|
||||
{ "name": "source/memory/stack_memory_pool.c", "index": 188, "status": "NonMatching" },
|
||||
{ "name": "source/memory/stack_memory_pool.c", "index": 188, "status": "Matching" },
|
||||
{ "name": "source/memory/sl_list.c", "index": 189, "status": "Matching" },
|
||||
{ "name": "source/memory/memory_pool.c", "index": 190, "status": "Matching" },
|
||||
{ "name": "source/memory/lruv_cache.c", "index": 191, "status": "NonMatching" },
|
||||
@@ -649,7 +649,7 @@
|
||||
{ "name": "source/interface/hud_draw.c", "index": 274, "status": "NonMatching" },
|
||||
{ "name": "source/interface/hud_definitions.c", "index": 275, "status": "Matching" },
|
||||
{ "name": "source/interface/hud.c", "index": 276, "status": "NonMatching" },
|
||||
{ "name": "source/input/input_xbox.c", "index": 277, "status": "NonMatching" },
|
||||
{ "name": "source/input/input_xbox.c", "index": 277, "status": "Matching" },
|
||||
{ "name": "source/input/input_windows.c", "index": 278, "status": "Matching" },
|
||||
{ "name": "source/input/input_abstraction.c", "index": 279, "status": "NonMatching" },
|
||||
{ "name": "source/input/HaloAutoTest.c", "index": 280, "status": "Matching" },
|
||||
@@ -680,7 +680,7 @@
|
||||
{ "name": "source/game/game_engine_ctf.c", "index": 305, "status": "NonMatching" },
|
||||
{ "name": "source/game/game_engine_bomb.c", "index": 306, "status": "Matching" },
|
||||
{ "name": "source/game/game_engine.c", "index": 307, "status": "NonMatching" },
|
||||
{ "name": "source/game/game_allegiance.c", "index": 308, "status": "NonMatching" },
|
||||
{ "name": "source/game/game_allegiance.c", "index": 308, "status": "Matching" },
|
||||
{ "name": "source/game/game.c", "index": 309, "status": "NonMatching" },
|
||||
{ "name": "source/game/cheats.c", "index": 310, "status": "NonMatching" },
|
||||
{ "name": "source/game/aim_assist.c", "index": 311, "status": "NonMatching" },
|
||||
@@ -841,7 +841,7 @@
|
||||
{ "name": "source/ai/action_guard.c", "index": 466, "status": "NonMatching" },
|
||||
{ "name": "source/ai/action_flee.c", "index": 467, "status": "NonMatching" },
|
||||
{ "name": "source/ai/action_fight.c", "index": 468, "status": "Matching" },
|
||||
{ "name": "source/ai/action_converse.c", "index": 469, "status": "NonMatching" },
|
||||
{ "name": "source/ai/action_converse.c", "index": 469, "status": "Matching" },
|
||||
{ "name": "source/ai/action_charge.c", "index": 470, "status": "NonMatching" },
|
||||
{ "name": "source/ai/action_avoid.c", "index": 471, "status": "Matching" },
|
||||
{ "name": "source/ai/action_alert.c", "index": 472, "status": "Matching" },
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
# Five small Halo object admissions (2026-09-23)
|
||||
|
||||
## Result and scope
|
||||
|
||||
Five Halo-owned translation units outside the concurrent Lane D allowlist are
|
||||
promoted from `NonMatching` to `Matching`. Their 93 January function bodies,
|
||||
12,876 meaningful code bytes, and 4,116 target-owned data bytes were **already
|
||||
strict-exact/credited** before this admission. This batch adds **zero** exact
|
||||
code or data bytes; it changes the audited whole-object count from 408/833 to
|
||||
413/833. Candidate-only pooled literals receive no January-byte credit.
|
||||
|
||||
| Unit | Strict functions | Meaningful code | Target data | Candidate-only runtime code |
|
||||
| --- | ---: | ---: | ---: | ---: |
|
||||
| `source/ai/action_converse` | 9/9 | 856 | 36/36 | 0 |
|
||||
| `source/scenario/wind` | 9/9 | 1,917 | 100/100 | 0 |
|
||||
| `source/memory/stack_memory_pool` | 33/33 | 4,678 | 1,000/1,000 | 0 |
|
||||
| `source/input/input_xbox` | 27/27 | 3,557 | 2,748/2,748 | 0 |
|
||||
| `source/game/game_allegiance` | 15/15 | 1,868 | 232/232 | 0 |
|
||||
|
||||
The fresh PID-isolated `gate.py --all` comparison passes for every unit.
|
||||
`input_xbox` has an ordinary objdiff false negative for the 192-byte
|
||||
`_input_key_is_down`; the hardened COFF comparator and existing accepted
|
||||
semantic exception both classify it strict exact. None of these five has an
|
||||
active park or object-admission rejection. The full `ninja` build, stable
|
||||
function sweep, park validator, and admission audit were rerun after the
|
||||
status changes.
|
||||
|
||||
## Target-owned COFF and pooled-literal boundary
|
||||
|
||||
`action_converse`, `wind`, and `stack_memory_pool` have exact target-owned
|
||||
section identities, including normalized payload, size, flags, COMDAT
|
||||
selection, symbol storage and offsets, and ordered relocation identities:
|
||||
respectively 9/9 code plus 1/1 data; 9/9 plus 6/6; and 33/33 plus 24/24.
|
||||
No target-owned COMMON or candidate-only code is present. Each surplus
|
||||
candidate section is a naturally emitted SELECT_ANY pooled literal that the
|
||||
January split imports and another January object selects with identical bytes
|
||||
and relocations. Twenty ordinary VC7/XDK base/base pair links, in both input
|
||||
orders against the selected-provider equivalents, report no `LNK2005` or
|
||||
`LNK1169`; expected unrelated `LNK1120` unresolved externals remain. No
|
||||
forced link, patch, stub, or attribution of these literal bytes is used.
|
||||
|
||||
`input_xbox` likewise has 27/27 exact target code sections, 23/23 exact
|
||||
target-owned noncode sections, and no candidate-only code or COMMON. Its only
|
||||
candidate-only runtime section is the seven-byte SELECT_ANY `"buffer"`
|
||||
literal. January imports it from this object and selects the identical copy
|
||||
in `cseries.obj`; ordinary base/base links in both orders pass the duplicate
|
||||
phase and stop only on unrelated unresolved imports. The 0x40c-byte private
|
||||
`input_globals` BSS owner has January's symbol class and offset.
|
||||
|
||||
`game_allegiance` has 15/15 exact code sections and no extra code. Its 40-byte
|
||||
team-name table has ten resolved relocations to the same image addresses as
|
||||
January. Its private four-byte pointer BSS owner has the same logical zero
|
||||
contents, storage, size and offset; csplit's materialized BSS and VC7's
|
||||
fileless BSS differ only physically. Ten candidate-only SELECT_ANY team-name
|
||||
strings (77 bytes) are identical to January's selected providers. Twelve
|
||||
ordinary provider-pair link probes (both orders) have no duplicate-definition
|
||||
failure, though they stop on unrelated unresolved imports. HCEX PDB separately
|
||||
corroborates the static pointer versus global team-name table. These
|
||||
representation and literal-selection facts are disclosed; none earns new
|
||||
data credit.
|
||||
|
||||
## Source-quality and verification boundary
|
||||
|
||||
The only source edit in this batch changes the private `stack_memory_pool_block`
|
||||
metadata fields from misleading `void **handle` / `long lock_count` to
|
||||
`char const *file` / `unsigned long line`, removing an unrelated pointer cast.
|
||||
The allocation API already supplies those exact types; all 33 target functions
|
||||
remain strict exact and the layout is unchanged. Other four source files are
|
||||
unchanged. Existing provisional names in `input_xbox` and reserved scenario
|
||||
layout spans in `action_converse` remain explicitly inferred, not claimed as
|
||||
original spelling or structure members. Fake-match scanning finds no new
|
||||
lead; no manual helper expansion, assembly, pragma, or new inline COMDAT was
|
||||
introduced. The user's held `path_obstacles` parenthesis lever is untouched.
|
||||
|
||||
After regeneration, `python -m tools.campaign.stable_verdicts diff` reports
|
||||
**zero gained, zero regressed** over all 8,245 function rows; the strict
|
||||
snapshot remains 7,493 exact. The admission audit reports zero contradicted
|
||||
Matching labels, and park validation reports zero stale/invalid entries.
|
||||
`python -m pytest -q tools` passes 1,152 tests, 5 skips and 26 subtests;
|
||||
plain `pytest -q` is not the repository's supported invocation because it
|
||||
also collects inaccessible scratch paths and omits the project import root.
|
||||
`git diff --check` passes. No Lane D source file is touched.
|
||||
@@ -134,8 +134,8 @@ struct stack_memory_pool_block
|
||||
long slot_index;
|
||||
struct stack_memory_pool_block *previous;
|
||||
struct stack_memory_pool_block *next;
|
||||
void **handle;
|
||||
long lock_count;
|
||||
char const *file;
|
||||
unsigned long line;
|
||||
unsigned long header_signature;
|
||||
byte data[1];
|
||||
};
|
||||
@@ -1059,8 +1059,8 @@ static struct stack_memory_pool_block *stack_memory_pool_allocate(
|
||||
pool->blocks[pool->next_block_index],
|
||||
size);
|
||||
block = pool->blocks[pool->next_block_index];
|
||||
block->handle = (void **)file;
|
||||
block->lock_count = line;
|
||||
block->file = file;
|
||||
block->line = line;
|
||||
if (!pool->first_block)
|
||||
{
|
||||
match_assert(
|
||||
|
||||
Reference in new issue
Block a user