Skip to content

Commit 53e99f1

Browse files
committed
close #8269: grow arrays incrementally by factors of 1.5 rather than 2
1 parent c9d4051 commit 53e99f1

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/array.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -633,7 +633,7 @@ JL_DLLEXPORT void jl_array_grow_end(jl_array_t *a, size_t inc)
633633
if ((alen + inc) > a->maxsize - a->offset) {
634634
size_t newlen = a->maxsize==0 ? (inc<4?4:inc) : a->maxsize*2;
635635
while ((alen + inc) > newlen - a->offset)
636-
newlen *= 2;
636+
newlen = (newlen * 3) >> 1;
637637

638638
newlen = limit_overallocation(a, alen, newlen, inc);
639639
array_resize_buffer(a, newlen, alen, a->offset);
@@ -694,7 +694,7 @@ JL_DLLEXPORT void jl_array_grow_beg(jl_array_t *a, size_t inc)
694694
if (inc > (a->maxsize-alen)/2 - (a->maxsize-alen)/20) {
695695
size_t newlen = a->maxsize==0 ? inc*2 : a->maxsize*2;
696696
while (alen+2*inc > newlen-a->offset)
697-
newlen *= 2;
697+
newlen = (newlen * 3) >> 1;
698698

699699
newlen = limit_overallocation(a, alen, newlen, 2*inc);
700700
size_t center = (newlen - (alen + inc))/2;

0 commit comments

Comments
 (0)