# HG changeset patch # User Mike Becker # Date 1668961357 -3600 # Node ID a4c4a50c067afc185fb7a4352e8d7f76d0ac68a5 # Parent b0bdff7d8203811102eb173b50f3140ecc32e484 fix calculation of new capacity in cx_array_copy() diff -r b0bdff7d8203 -r a4c4a50c067a src/array_list.c --- a/src/array_list.c Sun Nov 20 17:06:00 2022 +0100 +++ b/src/array_list.c Sun Nov 20 17:22:37 2022 +0100 @@ -68,8 +68,9 @@ bool repairsrc = targetaddr <= srcaddr && srcaddr < targetaddr + cap * elem_size; - /* increase capacity linearly */ - cap += 16; + /* calculate new capacity (next number divisible by 16) */ + cap = newsize - (newsize % 16) + 16; + assert(cap > newsize); /* perform reallocation */ void *newmem = reallocator->realloc(