src/array_list.c

changeset 855
35bcb3216c0d
parent 854
fe0d69d72bcd
child 856
6bbbf219251d
     1.1 --- a/src/array_list.c	Thu May 23 20:29:28 2024 +0200
     1.2 +++ b/src/array_list.c	Thu May 23 20:31:37 2024 +0200
     1.3 @@ -194,13 +194,13 @@
     1.4      if (list->base.simple_destructor) {
     1.5          for (size_t i = 0; i < list->base.size; i++) {
     1.6              cx_invoke_simple_destructor(list, ptr);
     1.7 -            ptr += list->base.item_size;
     1.8 +            ptr += list->base.elem_size;
     1.9          }
    1.10      }
    1.11      if (list->base.advanced_destructor) {
    1.12          for (size_t i = 0; i < list->base.size; i++) {
    1.13              cx_invoke_advanced_destructor(list, ptr);
    1.14 -            ptr += list->base.item_size;
    1.15 +            ptr += list->base.elem_size;
    1.16          }
    1.17      }
    1.18  
    1.19 @@ -223,7 +223,7 @@
    1.20      // do we need to move some elements?
    1.21      if (index < list->base.size) {
    1.22          char const *first_to_move = (char const *) arl->data;
    1.23 -        first_to_move += index * list->base.item_size;
    1.24 +        first_to_move += index * list->base.elem_size;
    1.25          size_t elems_to_move = list->base.size - index;
    1.26          size_t start_of_moved = index + n;
    1.27  
    1.28 @@ -233,7 +233,7 @@
    1.29                  &arl->capacity,
    1.30                  start_of_moved,
    1.31                  first_to_move,
    1.32 -                list->base.item_size,
    1.33 +                list->base.elem_size,
    1.34                  elems_to_move,
    1.35                  &arl->reallocator
    1.36          )) {
    1.37 @@ -253,7 +253,7 @@
    1.38              &arl->capacity,
    1.39              index,
    1.40              array,
    1.41 -            list->base.item_size,
    1.42 +            list->base.elem_size,
    1.43              n,
    1.44              &arl->reallocator
    1.45      )) {
    1.46 @@ -286,7 +286,7 @@
    1.47          );
    1.48          if (result == 0 && prepend != 0) {
    1.49              iter->index++;
    1.50 -            iter->elem_handle = ((char *) iter->elem_handle) + list->base.item_size;
    1.51 +            iter->elem_handle = ((char *) iter->elem_handle) + list->base.elem_size;
    1.52          }
    1.53          return result;
    1.54      } else {
    1.55 @@ -308,7 +308,7 @@
    1.56      }
    1.57  
    1.58      // content destruction
    1.59 -    cx_invoke_destructor(list, ((char *) arl->data) + index * list->base.item_size);
    1.60 +    cx_invoke_destructor(list, ((char *) arl->data) + index * list->base.elem_size);
    1.61  
    1.62      // short-circuit removal of last element
    1.63      if (index == list->base.size - 1) {
    1.64 @@ -322,8 +322,8 @@
    1.65              &list->base.size,
    1.66              &arl->capacity,
    1.67              index,
    1.68 -            ((char *) arl->data) + (index + 1) * list->base.item_size,
    1.69 -            list->base.item_size,
    1.70 +            ((char *) arl->data) + (index + 1) * list->base.elem_size,
    1.71 +            list->base.elem_size,
    1.72              list->base.size - index - 1,
    1.73              &arl->reallocator
    1.74      );
    1.75 @@ -346,17 +346,17 @@
    1.76      if (list->base.simple_destructor) {
    1.77          for (size_t i = 0; i < list->base.size; i++) {
    1.78              cx_invoke_simple_destructor(list, ptr);
    1.79 -            ptr += list->base.item_size;
    1.80 +            ptr += list->base.elem_size;
    1.81          }
    1.82      }
    1.83      if (list->base.advanced_destructor) {
    1.84          for (size_t i = 0; i < list->base.size; i++) {
    1.85              cx_invoke_advanced_destructor(list, ptr);
    1.86 -            ptr += list->base.item_size;
    1.87 +            ptr += list->base.elem_size;
    1.88          }
    1.89      }
    1.90  
    1.91 -    memset(arl->data, 0, list->base.size * list->base.item_size);
    1.92 +    memset(arl->data, 0, list->base.size * list->base.elem_size);
    1.93      list->base.size = 0;
    1.94  }
    1.95  
    1.96 @@ -367,7 +367,7 @@
    1.97  ) {
    1.98      if (i >= list->base.size || j >= list->base.size) return 1;
    1.99      cx_array_list *arl = (cx_array_list *) list;
   1.100 -    cx_array_swap(arl->data, list->base.item_size, i, j);
   1.101 +    cx_array_swap(arl->data, list->base.elem_size, i, j);
   1.102      return 0;
   1.103  }
   1.104  
   1.105 @@ -378,7 +378,7 @@
   1.106      if (index < list->base.size) {
   1.107          cx_array_list const *arl = (cx_array_list const *) list;
   1.108          char *space = arl->data;
   1.109 -        return space + index * list->base.item_size;
   1.110 +        return space + index * list->base.elem_size;
   1.111      } else {
   1.112          return NULL;
   1.113      }
   1.114 @@ -405,7 +405,7 @@
   1.115                  return i;
   1.116              }
   1.117          }
   1.118 -        cur += list->base.item_size;
   1.119 +        cur += list->base.elem_size;
   1.120      }
   1.121  
   1.122      return -1;
   1.123 @@ -415,7 +415,7 @@
   1.124      assert(list->base.cmpfunc != NULL);
   1.125      qsort(((cx_array_list *) list)->data,
   1.126            list->base.size,
   1.127 -          list->base.item_size,
   1.128 +          list->base.elem_size,
   1.129            list->base.cmpfunc
   1.130      );
   1.131  }
   1.132 @@ -433,8 +433,8 @@
   1.133              if (d != 0) {
   1.134                  return d;
   1.135              }
   1.136 -            left += list->base.item_size;
   1.137 -            right += other->base.item_size;
   1.138 +            left += list->base.elem_size;
   1.139 +            right += other->base.elem_size;
   1.140          }
   1.141          return 0;
   1.142      } else {
   1.143 @@ -447,7 +447,7 @@
   1.144      void *data = ((cx_array_list const *) list)->data;
   1.145      size_t half = list->base.size / 2;
   1.146      for (size_t i = 0; i < half; i++) {
   1.147 -        cx_array_swap(data, list->base.item_size, i, list->base.size - 1 - i);
   1.148 +        cx_array_swap(data, list->base.elem_size, i, list->base.size - 1 - i);
   1.149      }
   1.150  }
   1.151  
   1.152 @@ -471,7 +471,7 @@
   1.153          iter->index++;
   1.154          iter->elem_handle =
   1.155                  ((char *) iter->elem_handle)
   1.156 -                + ((struct cx_list_s const *) iter->src_handle.c)->base.item_size;
   1.157 +                + ((struct cx_list_s const *) iter->src_handle.c)->base.elem_size;
   1.158      }
   1.159  }
   1.160  
   1.161 @@ -485,7 +485,7 @@
   1.162      iter->index--;
   1.163      if (iter->index < list->base.base.size) {
   1.164          iter->elem_handle = ((char *) list->data)
   1.165 -                            + iter->index * list->base.base.item_size;
   1.166 +                            + iter->index * list->base.base.elem_size;
   1.167      }
   1.168  }
   1.169  
   1.170 @@ -500,7 +500,7 @@
   1.171      iter.index = index;
   1.172      iter.src_handle.c = list;
   1.173      iter.elem_handle = cx_arl_at(list, index);
   1.174 -    iter.elem_size = list->base.item_size;
   1.175 +    iter.elem_size = list->base.elem_size;
   1.176      iter.elem_count = list->base.size;
   1.177      iter.base.valid = cx_arl_iter_valid;
   1.178      iter.base.current = cx_arl_iter_current;
   1.179 @@ -530,7 +530,7 @@
   1.180  CxList *cxArrayListCreate(
   1.181          CxAllocator const *allocator,
   1.182          cx_compare_func comparator,
   1.183 -        size_t item_size,
   1.184 +        size_t elem_size,
   1.185          size_t initial_capacity
   1.186  ) {
   1.187      if (allocator == NULL) {
   1.188 @@ -544,17 +544,17 @@
   1.189      list->base.base.allocator = allocator;
   1.190      list->capacity = initial_capacity;
   1.191  
   1.192 -    if (item_size > 0) {
   1.193 -        list->base.base.item_size = item_size;
   1.194 +    if (elem_size > 0) {
   1.195 +        list->base.base.elem_size = elem_size;
   1.196          list->base.base.cmpfunc = comparator;
   1.197      } else {
   1.198 -        item_size = sizeof(void *);
   1.199 +        elem_size = sizeof(void *);
   1.200          list->base.base.cmpfunc = comparator == NULL ? cx_cmp_ptr : comparator;
   1.201          cxListStorePointers((CxList *) list);
   1.202      }
   1.203  
   1.204 -    // allocate the array after the real item_size is known
   1.205 -    list->data = cxCalloc(allocator, initial_capacity, item_size);
   1.206 +    // allocate the array after the real elem_size is known
   1.207 +    list->data = cxCalloc(allocator, initial_capacity, elem_size);
   1.208      if (list->data == NULL) {
   1.209          cxFree(allocator, list);
   1.210          return NULL;

mercurial