diff -r d607a184925a -r cdce47f34d48 src/array_list.c --- a/src/array_list.c Tue Aug 20 18:02:39 2024 +0200 +++ b/src/array_list.c Thu Aug 29 20:48:15 2024 +0200 @@ -284,14 +284,20 @@ iter->index + 1 - prepend, elem ); - if (result == 0 && prepend != 0) { - iter->index++; - iter->elem_handle = ((char *) iter->elem_handle) + list->collection.elem_size; + if (result == 0) { + iter->elem_count++; + if (prepend != 0) { + iter->index++; + iter->elem_handle = ((char *) iter->elem_handle) + list->collection.elem_size; + } } return result; } else { int result = cx_arl_insert_element(list, list->collection.size, elem); - iter->index = list->collection.size; + if (result == 0) { + iter->elem_count++; + iter->index = list->collection.size; + } return result; } }