-
Notifications
You must be signed in to change notification settings - Fork 212
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(swingset): initializeKindHandleKind early enough to support durables
Previously, `kindIDID` (the ID of the virtual object Kind that is used to hold the KindHandles we need for durable kinds) was allocated on-demand, the first time `makeKindHandle()` was called. The ID it received (and the ID of everything allocate afterwards) thus depended upon if/when userspace decided to use `makeKindHandle()`. In addition, `vrm.registerKind()` for the KindHandle kind was not called until `kindIDID` itself was allocated. This doesn't necessarily happen at all in the version-2 of a vat (i.e. if v2 doesn't define any additional durable kinds), and can't be relied upon to happen before v2 needs to deserialize the KindHandles that live in the 'baggage'. So this commit changes liveslots to factor out the initialization and registration into a new `initializeKindHandleKind` function, and arranges to call it during `startVat()`. Several "fake" test harnesses in `tools/` were updated to call it as they build their stuff. test-gc-kernel.js was updated to sort the extracted vrefs numerically, which was allowing the previous version of this test to pass despite having the wrong object IDs. refs #1848
- Loading branch information
Showing
14 changed files
with
122 additions
and
70 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.