Ground region producer and consumer latch owners
This commit is contained in:
parent
9d8b4e4031
commit
241f5e256a
2 changed files with 20 additions and 8 deletions
|
|
@ -4202,9 +4202,9 @@ fn build_region_service_trace_report(
|
|||
.to_string(),
|
||||
];
|
||||
let next_owner_questions = vec![
|
||||
"Which persisted owner seam rebuilds or restores [region+0x25e/+0x276/+0x302/+0x316]?".to_string(),
|
||||
"Which stable region id or class discriminator survives save/load strongly enough to drive 0x004358d0?".to_string(),
|
||||
"How far can 0x00420030/0x00420280 plus 0x0047efe0 be reused directly before the transient queued-notice family matters again?".to_string(),
|
||||
"Which restore seam re-seeds [region+0x25e] and clears [region+0x302/+0x316] before the grounded 0x00422100 -> 0x004358d0 producer/consumer cycle runs again?".to_string(),
|
||||
"Which stable region id or class discriminator survives save/load strongly enough to drive 0x004358d0 after the class-0 raster/id rebuilds are ruled out?".to_string(),
|
||||
"How far can the grounded 0x00420030/0x00420280 plus 0x0047efe0 connection chain be rehosted directly before the transient queued-notice family matters again?".to_string(),
|
||||
];
|
||||
let candidate_consumer_hypotheses = vec![
|
||||
SmpServiceConsumerHypothesis {
|
||||
|
|
@ -4223,10 +4223,11 @@ fn build_region_service_trace_report(
|
|||
"atlas already bounds this owner as the direct consumer of [region+0x276], [region+0x302], and [region+0x316]".to_string(),
|
||||
"the new region trace already proves the record envelope and profile subcollection, so the remaining gap is the separate persisted latch seam rather than the service owner".to_string(),
|
||||
"direct disassembly now shows 0x004358d0 calling 0x00420030 twice plus 0x00420280, resolving the linked company through 0x0047efe0, posting company stat slot 4, and then clearing [region+0x276] while stamping [region+0x302] or [region+0x316]".to_string(),
|
||||
"that same direct disassembly now also tightens the branch meaning: the linked-company branch formats the localized region-name notice from [region+0x356], posts it through 0x004554e0 and 0x0042a080, clears [region+0x276], and stamps [region+0x302]=1, while the fallback branch only runs when [region+0x316]==0 and then flips that one-shot latch to 1 before emitting its alternate notice".to_string(),
|
||||
"the checked-in constructor owner 0x00421200 now also proves these latches are initialized locally at record construction time, which narrows the remaining gap to post-construction restore or rebuild rather than basic field identity".to_string(),
|
||||
],
|
||||
blockers: vec![
|
||||
"persisted owner seam for [region+0x25e/+0x276/+0x302/+0x316]".to_string(),
|
||||
"restore seam that re-seeds [region+0x25e] and clears [region+0x302/+0x316] between service cycles".to_string(),
|
||||
"stable region id or class discriminator".to_string(),
|
||||
],
|
||||
},
|
||||
|
|
@ -4275,10 +4276,11 @@ fn build_region_service_trace_report(
|
|||
evidence: vec![
|
||||
"atlas ties these owners to the transient kind-7 queue family rooted at [world+0x66a6]".to_string(),
|
||||
"grounded save probes now show that the ordinary-save queue family is not obviously persisted, so this looks more like runtime rebuild state than a direct save seam".to_string(),
|
||||
"direct disassembly now shows 0x00422100 itself owning the pending-amount seed: it counts eligible class-0 regions with [region+0x276]==0 and [region+0x302]==0, samples one candidate, buckets [region+0x25e] against three thresholds, writes the resulting amount to [region+0x276], and then appends the kind-7 queued notice through 0x004337c0".to_string(),
|
||||
],
|
||||
blockers: vec![
|
||||
"transient queue is not obviously persisted in ordinary saves".to_string(),
|
||||
"needs one upstream persisted latch or rebuild owner first".to_string(),
|
||||
"needs the upstream restore seam for [region+0x25e/+0x302/+0x316] rather than more queue-side probing".to_string(),
|
||||
],
|
||||
},
|
||||
SmpServiceConsumerHypothesis {
|
||||
|
|
@ -4357,6 +4359,9 @@ fn build_region_service_trace_report(
|
|||
notes.push(
|
||||
"Region service trace treats the queued kind-7 notice family as transient runtime state until a persisted owner seam is found.".to_string(),
|
||||
);
|
||||
notes.push(
|
||||
"Direct disassembly now grounds the core producer/consumer pair itself: 0x00422100 seeds [region+0x276] from the severity/source lane [region+0x25e] and appends the kind-7 notice through 0x004337c0, while 0x004358d0 consumes that amount, runs the city-connection peer probes 0x00420030/0x00420280 plus the linked-company resolver 0x0047efe0, and then stamps [region+0x302] or [region+0x316].".to_string(),
|
||||
);
|
||||
notes.push(
|
||||
"The current region seam is strong enough to prove record-envelope ownership, profile subcollection ownership, and the absence of hidden 0x55f3 tail padding on grounded saves.".to_string(),
|
||||
);
|
||||
|
|
|
|||
|
|
@ -311,9 +311,9 @@ Working rule:
|
|||
transient producer/queue family explicitly secondary and the queued kind-`7` modal dispatch kept
|
||||
as shell-adjacent reference only.
|
||||
- For that top-ranked region strip, treat the next pass as three exact owner questions too: which
|
||||
persisted owner seam restores or rebuilds `[region+0x25e/+0x276/+0x302/+0x316]`, which stable
|
||||
region id or class discriminator survives save/load strongly enough to drive `0x004358d0`, and
|
||||
how far the grounded city-connection peer/linkage helpers
|
||||
restore seam re-seeds `[region+0x25e]` and clears `[region+0x302/+0x316]` before the grounded
|
||||
`0x00422100 -> 0x004358d0` producer/consumer cycle runs again, which stable region id or class
|
||||
discriminator survives save/load strongly enough to drive `0x004358d0`, and how far the grounded city-connection peer/linkage helpers
|
||||
(`0x00420030/0x00420280`, `0x0047efe0`) can be reused directly before the transient queued-notice
|
||||
family matters again.
|
||||
- Targeted disassembly now tightens that strip too: `0x004358d0` calls `0x00420030` twice plus
|
||||
|
|
@ -324,6 +324,13 @@ Working rule:
|
|||
`0x0047fd50`, and the status branch `0x0047de00 -> 0x0040c990`; `0x00420280` is the same scan
|
||||
returning the first matching site id. So the remaining unknown is the persisted latch/id seam,
|
||||
not the live peer/service logic.
|
||||
- The producer half is grounded now too: `0x00422100` filters for class-`0` regions with
|
||||
`[region+0x276]==0` and `[region+0x302]==0`, rejects already-connected pairs through
|
||||
`0x00420030(1,1,0,0)`, chooses one eligible candidate, buckets severity/source lane
|
||||
`[region+0x25e]` against the three checked thresholds, writes the resulting amount to
|
||||
`[region+0x276]`, and appends the kind-`7` queued notice through `0x004337c0`. That means the
|
||||
remaining region gap is now explicitly the upstream restore seam for `[region+0x25e]` and the
|
||||
completion/fallback latch clear, not either side of the producer/consumer service pair.
|
||||
- The checked-in constructor owner `0x00421200`
|
||||
`world_region_construct_entry_with_id_class_and_default_marker09_profile_seed` now also grounds
|
||||
the initialization side of this family: it clears `[region+0x276]`, `[region+0x302]`,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue