diff options
Diffstat (limited to 'src/interp/c-util.boot')
-rw-r--r-- | src/interp/c-util.boot | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/src/interp/c-util.boot b/src/interp/c-util.boot index 3bc4a2e4..e9643db3 100644 --- a/src/interp/c-util.boot +++ b/src/interp/c-util.boot @@ -1211,18 +1211,12 @@ clearCapsuleDirectory() == ++ slot number `slot'. A nil entry means that either the operation ++ is not defined, or it is conditional. getCapsuleDirectoryEntry slot == - rest ASSOC(slot,$capsuleDirectory) + scalarTarget(slot,$capsuleDirectory) ++ Update the current capsule directory with entry controlled by ++ predicate `pred'. -updateCapsuleDirectory(item,pred) == - pred ~= true => nil - entry := - item is [['$,slot],['CONS,['dispatchFunction,fun],:.],:.] => [slot,:fun] - item is [['$,slot],['CONS,'IDENTITY, - ['FUNCALL,['dispatchFunction,fun],'$]]] => [slot,:fun] - nil - entry = nil => nil +updateCapsuleDirectory(entry,pred) == + pred isnt true => nil $capsuleDirectory := [entry,:$capsuleDirectory] |