From b8d4248053de632d94cdceed4df603938964d925 Mon Sep 17 00:00:00 2001 From: Sam Tobin-Hochstadt Date: Sun, 6 Dec 2015 10:31:01 -0500 Subject: [PATCH] Copy immutable vector more efficiently. Thanks to @mflatt for the suggestion. --- racket/collects/racket/contract/private/vector.rkt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/racket/collects/racket/contract/private/vector.rkt b/racket/collects/racket/contract/private/vector.rkt index f5db23de87..45ffd86973 100644 --- a/racket/collects/racket/contract/private/vector.rkt +++ b/racket/collects/racket/contract/private/vector.rkt @@ -179,9 +179,9 @@ (apply raise-blame-error blame #:missing-party neg-party val args)) (check val raise-blame #f) (if (and (immutable? val) (not (chaperone? val))) - (apply vector-immutable - (for/list ([e (in-vector val)]) - (elem-pos-proj e neg-party))) + (vector->immutable-vector + (for/vector #:length (vector-length val) ([e (in-vector val)]) + (elem-pos-proj e neg-party))) (chaperone-or-impersonate-vector val (checked-ref neg-party)