src/array_list.c

changeset 874
cdce47f34d48
parent 856
6bbbf219251d
child 876
f4ce7df9cff0
--- 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;
     }
 }

mercurial