Rule out region border and center-grid restore owners
This commit is contained in:
parent
f99d26fc7c
commit
e4462e66b8
1 changed files with 19 additions and 1 deletions
|
|
@ -4254,10 +4254,12 @@ fn build_region_service_trace_report(
|
|||
"that broader restore strip now also has one grounded later region-local sweep: at 0x00444b08 it re-enters the live region collection through 0x00421ce0, which walks live records via 0x518380/0x518140 and dispatches 0x0041fb00 per record".to_string(),
|
||||
"the checked-in atlas already grounds 0x0041fb00 as the class-0-only default-region helper under the same family, and 0x00421730 as the later raster finalizer that repopulates [world+0x212d] from class-0 region ids".to_string(),
|
||||
"direct disassembly now tightens that later sweep too: 0x0041fb00 exits immediately for nonzero [region+0x23e], while 0x00421730 clears the per-cell region word at [world+0x212d]+cell*4+1, seeds cached bounds-like fields [region+0x242/+0x246/+0x24a/+0x24e/+0x252], and only then enters the class-0 path that consumes [region+0x256] and the coordinate helpers 0x00455800/0x00455810".to_string(),
|
||||
"the later restore-band siblings are tighter now too: 0x00487de0 clears the prior chunked border queues through 0x00533cf0, builds a small per-region id map from [region+0x00]/[region+0x35] keyed by class [region+0x31], scans the live world raster at [world+0x2131], and appends fresh border-segment rows through 0x00536ea0 without touching [region+0x25e/+0x276/+0x302/+0x316]".to_string(),
|
||||
"the neighboring world-grid reseed 0x0044c4b0 is tighter now too: it clears bit 0x10 across the live grid byte at cell offset +0xe6, then walks the live region collection at 0x0062bae0, admits only class-0 records via [region+0x23e], resolves one representative center cell through 0x00455f60, and marks that same bit back on, which again reads as raster presentation state rather than pending/completion latch restore".to_string(),
|
||||
],
|
||||
blockers: vec![
|
||||
"which later restore or rebuild owner rehydrates [region+0x276/+0x302/+0x316] after the 0x00421510 -> 0x0041f5c0 -> 0x00455fc0 path completes".to_string(),
|
||||
"whether [region+0x25e] severity/source and any stable region id/class discriminator are serialized elsewhere in the tagged region body or recomputed later by the 0x00421ce0 -> 0x0041fb00 -> 0x00421730 post-load sweep, which now looks like a class-0 raster/id rebuild rather than the pending/completion latch owner".to_string(),
|
||||
"whether [region+0x25e] severity/source and any stable region id/class discriminator are serialized elsewhere in the tagged region body or recomputed later by another post-load owner after the 0x00421ce0 -> 0x0041fb00 -> 0x00421730 class-0 raster/id sweep, 0x00487de0 border rebuild, and 0x0044c4b0 center-cell reseed are all ruled out as latch owners".to_string(),
|
||||
],
|
||||
},
|
||||
SmpServiceConsumerHypothesis {
|
||||
|
|
@ -25583,6 +25585,22 @@ mod tests {
|
|||
.any(|line| line.contains("0x00421730")
|
||||
&& line.contains("[region+0x242/+0x246/+0x24a/+0x24e/+0x252]"))
|
||||
);
|
||||
assert!(
|
||||
trace.candidate_consumer_hypotheses[1]
|
||||
.evidence
|
||||
.iter()
|
||||
.any(|line| line.contains("0x00487de0")
|
||||
&& line.contains("0x00533cf0")
|
||||
&& line.contains("0x00536ea0"))
|
||||
);
|
||||
assert!(
|
||||
trace.candidate_consumer_hypotheses[1]
|
||||
.evidence
|
||||
.iter()
|
||||
.any(|line| line.contains("0x0044c4b0")
|
||||
&& line.contains("0x00455f60")
|
||||
&& line.contains("bit 0x10"))
|
||||
);
|
||||
assert_eq!(trace.entries.len(), 1);
|
||||
assert_eq!(
|
||||
trace.entries[0].branches[0].status,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue