From 609672bfa19fce9d6da18de58e2f09ac3afc0ee4 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Fri, 8 Mar 2013 12:47:41 -0600 Subject: [PATCH] bugfix in the closure support --- .../gc2/good-collectors/trivial-collector.rkt | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/collects/tests/plai/gc2/good-collectors/trivial-collector.rkt b/collects/tests/plai/gc2/good-collectors/trivial-collector.rkt index a8a011603f..dc0a2b6779 100644 --- a/collects/tests/plai/gc2/good-collectors/trivial-collector.rkt +++ b/collects/tests/plai/gc2/good-collectors/trivial-collector.rkt @@ -14,9 +14,9 @@ (for ([v (in-vector vs)] [i (in-naturals 1)]) (heap-set! (+ 1 i heap-ptr) v)) - (set! heap-ptr (+ len heap-ptr)) + (set! heap-ptr (+ len 2 heap-ptr)) ;; return the location of this flat data - (- heap-ptr len)) + (- heap-ptr len 2)) (define (gc:closure-code-ptr a) (heap-ref (+ a 1))) @@ -78,4 +78,14 @@ (let ([x 0]) (set-root! (car (get-root-set x)) 1) x)) - 1)) + 1) + + (check-equal? (let ([h (make-vector 7)]) + (with-heap + h + (init-allocator) + (define one (gc:alloc-flat 1)) + (define clos (gc:closure 'something (vector one))) + (gc:alloc-flat 2)) + h) + (vector 'prim 1 'closure 'something 0 'prim 2)))