diff --git a/quad/quad/position.rkt b/quad/quad/position.rkt index a86d5bcd..8ce69aa1 100644 --- a/quad/quad/position.rkt +++ b/quad/quad/position.rkt @@ -128,9 +128,8 @@ [(list ∆x ∆y) (sqrt (+ (expt ∆x 2) (expt ∆y 2)))])) (define (flatten-quad q) - (define elems (quad-elems q)) - (cons (quad-update! q [elems null]) - (apply append (map flatten-quad elems)))) + (cons (struct-copy quad q [elems null]) + (apply append (map flatten-quad (quad-elems q))))) (define (bounding-box . qs-in) ;; size of box that holds q and all subqs, based on reported origin and size