diff --git a/collects/plai/gc2/mutator.rkt b/collects/plai/gc2/mutator.rkt index 957d7605c7..45ff8e63c3 100644 --- a/collects/plai/gc2/mutator.rkt +++ b/collects/plai/gc2/mutator.rkt @@ -258,7 +258,7 @@ (define this-loc ((car getters))) (define this-setter (car setters)) (define-values (this-other-roots leftovers) - (filter (λ (x) (= (read-root x) this-loc)) remaining-roots)) + (partition (λ (x) (= (read-root x) this-loc)) remaining-roots)) (loop (cdr getters) (cdr setters) leftovers (cons (make-root 'closure-root diff --git a/collects/tests/plai/gc2/roots-test.rkt b/collects/tests/plai/gc2/roots-test.rkt index 8046c783f5..0ac18db88e 100644 --- a/collects/tests/plai/gc2/roots-test.rkt +++ b/collects/tests/plai/gc2/roots-test.rkt @@ -34,14 +34,14 @@ that the test cases have to be set up somewhat carefully. (define (init-allocator) (set! heap-ptr 0)) (define (gc:closure code vs) - (define len (vector-length vs)) + (define len (length vs)) (when (> (+ heap-ptr len) (heap-size)) (error "out of memory")) (heap-set! heap-ptr 'closure) (heap-set! (+ 1 heap-ptr) code) - (for ([v (in-vector vs)] + (for ([v (in-list vs)] [i (in-naturals 1)]) - (heap-set! (+ 1 i heap-ptr) v)) + (heap-set! (+ 1 i heap-ptr) (heap-ref v))) (set! heap-ptr (+ len 2 heap-ptr)) ;; return the location of this flat data (- heap-ptr len 2))