cs: fix mark-table-prune
Fix the case when the list of marks to remove is empty, and also change the order of the arguments.
This commit is contained in:
parent
859ead9cc3
commit
ebb7c0ea82
|
@ -827,15 +827,10 @@
|
||||||
|
|
||||||
(define (mark-table-prune a b)
|
(define (mark-table-prune a b)
|
||||||
(cond
|
(cond
|
||||||
[(null? a) b]
|
[(null? a) '()]
|
||||||
[(null? b) a]
|
[(null? b) a]
|
||||||
[else
|
[else (mark-table-prune (mark-table-remove a (caar b))
|
||||||
(let loop ([b b] [a a])
|
(cdr b))]))
|
||||||
(cond
|
|
||||||
[(null? a) b]
|
|
||||||
[else (let ([p (car a)])
|
|
||||||
(loop (mark-table-remove b (car p))
|
|
||||||
(cdr a)))]))]))
|
|
||||||
|
|
||||||
(define (mark-table->hash mt)
|
(define (mark-table->hash mt)
|
||||||
(let loop ([ht empty-hasheq] [mt mt])
|
(let loop ([ht empty-hasheq] [mt mt])
|
||||||
|
@ -1034,8 +1029,8 @@
|
||||||
[(and (not prev) (eq? (mark-stack-frame-k mark-stack) empty-k))
|
[(and (not prev) (eq? (mark-stack-frame-k mark-stack) empty-k))
|
||||||
(make-mark-stack-frame #f
|
(make-mark-stack-frame #f
|
||||||
empty-k
|
empty-k
|
||||||
(mark-table-prune (mark-stack-frame-table mark-stack)
|
(mark-table-prune (mark-stack-frame-table mark-splice)
|
||||||
(mark-stack-frame-table mark-splice))
|
(mark-stack-frame-table mark-stack))
|
||||||
#f)]
|
#f)]
|
||||||
[else (loop prev)]))]))]))
|
[else (loop prev)]))]))]))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user