--- a/src/array_list.c Mon Dec 22 16:21:04 2025 +0100 +++ b/src/array_list.c Mon Dec 22 16:36:06 2025 +0100 @@ -115,8 +115,8 @@ dst += index * elem_size; // do we need to move some elements? - if (index < array->size) { - size_t elems_to_move = array->size - index; + size_t elems_to_move = array->size - index; + if (elems_to_move > 0) { char *target = dst + n * elem_size; memmove(target, dst, elems_to_move * elem_size); }