Handle empty gvectors when doubling size.
Closes PR 14843.
This commit is contained in:
parent
aad0fa5884
commit
ed4845b39b
|
@ -46,7 +46,7 @@
|
||||||
(vector-set! v index item))
|
(vector-set! v index item))
|
||||||
(set-gvector-n! gv (+ n item-count))]
|
(set-gvector-n! gv (+ n item-count))]
|
||||||
[else
|
[else
|
||||||
(let* ([nn (let loop ([nn n])
|
(let* ([nn (let loop ([nn (max n 1)])
|
||||||
(if (<= (+ n item-count) nn) nn (loop (* 2 nn))))]
|
(if (<= (+ n item-count) nn) nn (loop (* 2 nn))))]
|
||||||
[nv (make-vector nn #f)])
|
[nv (make-vector nn #f)])
|
||||||
(vector-copy! nv 0 v)
|
(vector-copy! nv 0 v)
|
||||||
|
|
|
@ -22,6 +22,13 @@
|
||||||
gv))
|
gv))
|
||||||
'#(1 2 3))
|
'#(1 2 3))
|
||||||
|
|
||||||
|
(test-equal? "gvector-add! (lots)"
|
||||||
|
(let ()
|
||||||
|
(define g (gvector))
|
||||||
|
(apply gvector-add! g (build-list 11 values))
|
||||||
|
(gvector->vector g))
|
||||||
|
(for/vector ([i 11]) i))
|
||||||
|
|
||||||
(test-equal? "gvector-ref"
|
(test-equal? "gvector-ref"
|
||||||
(let ([gv (gvector 1 2 3)])
|
(let ([gv (gvector 1 2 3)])
|
||||||
;; 3 valid refs + 1 not-found
|
;; 3 valid refs + 1 not-found
|
||||||
|
|
Loading…
Reference in New Issue
Block a user