Preserve periodic trigger-kind gate details
This commit is contained in:
parent
fbfd41e454
commit
43660cb93b
2 changed files with 74 additions and 0 deletions
|
|
@ -62,6 +62,43 @@ queue, the large function map note, and the broader subgraph artifacts.
|
||||||
- but the missing trigger-kind lane is still the blocker above the already-grounded descriptor
|
- but the missing trigger-kind lane is still the blocker above the already-grounded descriptor
|
||||||
bridge
|
bridge
|
||||||
|
|
||||||
|
## Direct Trigger-Kind Gate
|
||||||
|
|
||||||
|
Fresh direct disassembly now keeps that control lane explicit rather than inferred:
|
||||||
|
|
||||||
|
- `0x00444d92`
|
||||||
|
- calls `0x00432f40` with trigger kind `8`
|
||||||
|
- then clears shell-profile latch `[0x006cec7c+0x97]`
|
||||||
|
- `0x00432f40`
|
||||||
|
- iterates the live runtime-effect collection
|
||||||
|
- calls `0x004323a0` for each row with the requested trigger kind
|
||||||
|
- records whether any row fired
|
||||||
|
- if collection flag `[this+0x88]` is raised, reruns the same service loop with trigger kind
|
||||||
|
`0x0a`
|
||||||
|
- `0x004323a0`
|
||||||
|
- returns immediately unless `[event+0x81f] == 0`
|
||||||
|
- returns immediately unless `[event+0x7ef] == trigger_kind`
|
||||||
|
- only after that exact compare does it continue into the compact dispatch body
|
||||||
|
|
||||||
|
So the active question is no longer whether the trigger kind is a direct row gate. It is where the
|
||||||
|
ordinary loaded rows get a nonzero `[event+0x7ef]` that matches the later kind-`8` or follow-on
|
||||||
|
kind-`0x0a` service.
|
||||||
|
|
||||||
|
## Reload-Side Boundary
|
||||||
|
|
||||||
|
The ordinary reload strip is bounded in the same negative way now:
|
||||||
|
|
||||||
|
- `0x00433130`
|
||||||
|
- restores tagged record families `0x4e99`, `0x4e9a`, and `0x4e9b`
|
||||||
|
- reads one fixed `4`-byte scalar block through `0x00531150`
|
||||||
|
- loops live rows through per-record restore helper `0x0042db20`
|
||||||
|
- clears collection flag `[this+0x88] = 0` before returning
|
||||||
|
- that reload path does not pass any trigger-kind argument analogous to the later
|
||||||
|
`0x00432f40(kind)` service
|
||||||
|
|
||||||
|
So the remaining late-bringup/control-lane frontier stays between reload and service rather than
|
||||||
|
inside the already-bounded restore loop itself.
|
||||||
|
|
||||||
## Post-Load Scenario Fixup
|
## Post-Load Scenario Fixup
|
||||||
|
|
||||||
- `shell_apply_scenario_name_specific_post_load_world_and_object_fixups` `0x00442c30`
|
- `shell_apply_scenario_name_specific_post_load_world_and_object_fixups` `0x00442c30`
|
||||||
|
|
|
||||||
|
|
@ -115,3 +115,40 @@ So the next non-hook question stays above those already-known title or scenario-
|
||||||
|
|
||||||
- which late bringup branch between ordinary reload `0x00433130` and final kind-`8` service
|
- which late bringup branch between ordinary reload `0x00433130` and final kind-`8` service
|
||||||
`0x00432f40` materializes the live mutation-capable ordinary rows
|
`0x00432f40` materializes the live mutation-capable ordinary rows
|
||||||
|
|
||||||
|
## Direct Trigger-Kind Gate
|
||||||
|
|
||||||
|
Fresh `objdump` over the control-lane strip now keeps the missing trigger-kind boundary concrete:
|
||||||
|
|
||||||
|
- `0x00444d92`
|
||||||
|
- calls `0x00432f40` with trigger kind `8`
|
||||||
|
- then clears shell-profile latch `[0x006cec7c+0x97]`
|
||||||
|
- `0x00432f40`
|
||||||
|
- iterates the live runtime-effect collection
|
||||||
|
- calls `0x004323a0` once per row with the requested trigger kind
|
||||||
|
- records whether any row fired
|
||||||
|
- if collection flag `[this+0x88]` is raised, reruns the same service loop with trigger kind
|
||||||
|
`0x0a`
|
||||||
|
- `0x004323a0`
|
||||||
|
- returns immediately unless `[event+0x81f] == 0`
|
||||||
|
- returns immediately unless `[event+0x7ef] == trigger_kind`
|
||||||
|
- only after that exact trigger-kind compare does it continue toward the compact dispatch body
|
||||||
|
|
||||||
|
So the current blocker is no longer “is trigger kind really a direct gate?” It is: where ordinary
|
||||||
|
loaded rows get a nonzero `[event+0x7ef]` that matches the later `0x00432f40(kind 8)` or follow-on
|
||||||
|
`kind 0x0a` service.
|
||||||
|
|
||||||
|
## Reload-Side Boundary
|
||||||
|
|
||||||
|
The ordinary reload path is narrower in the same negative way now too:
|
||||||
|
|
||||||
|
- `0x00433130`
|
||||||
|
- restores tagged record families `0x4e99`, `0x4e9a`, and `0x4e9b`
|
||||||
|
- reads one fixed `4`-byte scalar block through `0x00531150`
|
||||||
|
- loops live rows through per-record restore helper `0x0042db20`
|
||||||
|
- clears collection flag `[this+0x88] = 0` before returning
|
||||||
|
- that reload path does not pass any trigger-kind argument analogous to the later `0x00432f40`
|
||||||
|
service call
|
||||||
|
|
||||||
|
So the remaining periodic-company question stays between reload and service: the checked restore
|
||||||
|
path repopulates the rows, but the later trigger-kind gate lives only in the service strip.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue