Repair: it is incorrect to invoke retraction-handlers when retracting an interest
This commit is contained in:
parent
f58c2fb8dc
commit
efa7f517c4
|
@ -122,7 +122,7 @@
|
|||
(set-add! (skeleton-accumulator-handlers acc) h)
|
||||
(for [(vars (in-bag (skeleton-accumulator-cache acc)))] (apply-handler! h vars)))
|
||||
|
||||
(define (skcont-remove! c i apply-handler!)
|
||||
(define (skcont-remove! c i)
|
||||
(match-define (skeleton-interest _desc cs cv vs h) i)
|
||||
(define cvt (hash-ref (skeleton-continuation-table c) cs #f))
|
||||
(when cvt
|
||||
|
@ -130,7 +130,6 @@
|
|||
(when sc
|
||||
(define acc (hash-ref (skeleton-matched-constant-table sc) vs #f))
|
||||
(when acc
|
||||
(for [(vars (in-bag (skeleton-accumulator-cache acc)))] (apply-handler! h vars))
|
||||
(set-remove! (skeleton-accumulator-handlers acc) h)
|
||||
(when (set-empty? (skeleton-accumulator-handlers acc))
|
||||
(hash-remove! (skeleton-matched-constant-table sc) vs)))
|
||||
|
@ -192,9 +191,7 @@
|
|||
|
||||
(define (remove-interest! sk i)
|
||||
(let ((sk (extend-skeleton! sk (skeleton-interest-desc i))))
|
||||
(skcont-remove! (skeleton-node-continuation sk)
|
||||
i
|
||||
(lambda (h vars) (apply h '- vars)))))
|
||||
(skcont-remove! (skeleton-node-continuation sk) i)))
|
||||
|
||||
(define (skeleton-modify! sk term0 modify-skcont! modify-skconst! modify-skacc!)
|
||||
(define (walk-node! sk term-stack)
|
||||
|
|
Loading…
Reference in New Issue