src/array_list.c

changeset 699
35b2b99ee523
parent 678
78f943d76f50
child 708
1caed6c9ba68
--- a/src/array_list.c	Sat Apr 22 14:09:46 2023 +0200
+++ b/src/array_list.c	Sat Apr 22 14:21:02 2023 +0200
@@ -345,21 +345,22 @@
     }
 }
 
-static size_t cx_arl_find(
+static ssize_t cx_arl_find(
         struct cx_list_s const *list,
         void const *elem
 ) {
     assert(list->cmpfunc != NULL);
+    assert(list->size < SIZE_MAX / 2);
     char *cur = ((cx_array_list const *) list)->data;
 
-    for (size_t i = 0; i < list->size; i++) {
+    for (ssize_t i = 0; i < (ssize_t) list->size; i++) {
         if (0 == list->cmpfunc(elem, cur)) {
             return i;
         }
         cur += list->item_size;
     }
 
-    return list->size;
+    return -1;
 }
 
 static void cx_arl_sort(struct cx_list_s *list) {

mercurial