From 3cc25721820776ffb1758a24333fbfab4ffe03af Mon Sep 17 00:00:00 2001 From: Brian Warner Date: Sat, 23 Dec 2023 22:34:04 -0500 Subject: [PATCH] refactor(swingset): move retireKernelObjects into kernelKeeper the "TODO: decref #2069 auxdata" comment was removed, because that will be the responsibility of deleteKernelObject() --- packages/SwingSet/src/kernel/kernelSyscall.js | 11 +---------- packages/SwingSet/src/kernel/state/kernelKeeper.js | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/packages/SwingSet/src/kernel/kernelSyscall.js b/packages/SwingSet/src/kernel/kernelSyscall.js index fa1ce165daf9..56d51909ee4a 100644 --- a/packages/SwingSet/src/kernel/kernelSyscall.js +++ b/packages/SwingSet/src/kernel/kernelSyscall.js @@ -178,16 +178,7 @@ export function makeKernelSyscallHandler(tools) { function retireExports(koids) { Array.isArray(koids) || Fail`retireExports given non-Array ${koids}`; - const newActions = []; - for (const koid of koids) { - const importers = kernelKeeper.getImporters(koid); - for (const vatID of importers) { - newActions.push(`${vatID} retireImport ${koid}`); - } - // TODO: decref and delete any #2069 auxdata - kernelKeeper.deleteKernelObject(koid); - } - kernelKeeper.addGCActions(newActions); + kernelKeeper.retireKernelObjects(koids); return OKNULL; } diff --git a/packages/SwingSet/src/kernel/state/kernelKeeper.js b/packages/SwingSet/src/kernel/state/kernelKeeper.js index 4e1cdbedd942..bd80c2ce59ef 100644 --- a/packages/SwingSet/src/kernel/state/kernelKeeper.js +++ b/packages/SwingSet/src/kernel/state/kernelKeeper.js @@ -708,6 +708,19 @@ export default function makeKernelKeeper( return owner; } + function retireKernelObjects(koids) { + Array.isArray(koids) || Fail`retireExports given non-Array ${koids}`; + const newActions = []; + for (const koid of koids) { + const importers = getImporters(koid); + for (const vatID of importers) { + newActions.push(`${vatID} retireImport ${koid}`); + } + deleteKernelObject(koid); + } + addGCActions(newActions); + } + function orphanKernelObject(kref, oldVat) { const ownerKey = `${kref}.owner`; const ownerVat = kvStore.get(ownerKey); @@ -1823,6 +1836,7 @@ export default function makeKernelKeeper( kernelObjectExists, getImporters, orphanKernelObject, + retireKernelObjects, deleteKernelObject, pinObject,