src/iterator.c

changeset 854
fe0d69d72bcd
parent 853
d4baf4dd55c3
     1.1 --- a/src/iterator.c	Thu May 23 19:29:14 2024 +0200
     1.2 +++ b/src/iterator.c	Thu May 23 20:29:28 2024 +0200
     1.3 @@ -42,8 +42,8 @@
     1.4  
     1.5  static void cx_iter_next_fast(void *it) {
     1.6      struct cx_iterator_s *iter = it;
     1.7 -    if (iter->remove) {
     1.8 -        iter->remove = false;
     1.9 +    if (iter->base.remove) {
    1.10 +        iter->base.remove = false;
    1.11          iter->elem_count--;
    1.12          // only move the last element when we are not currently aiming
    1.13          // at the last element already
    1.14 @@ -60,8 +60,8 @@
    1.15  
    1.16  static void cx_iter_next_slow(void *it) {
    1.17      struct cx_iterator_s *iter = it;
    1.18 -    if (iter->remove) {
    1.19 -        iter->remove = false;
    1.20 +    if (iter->base.remove) {
    1.21 +        iter->base.remove = false;
    1.22          iter->elem_count--;
    1.23  
    1.24          // number of elements to move
    1.25 @@ -92,11 +92,11 @@
    1.26      iter.elem_handle = array;
    1.27      iter.elem_size = elem_size;
    1.28      iter.elem_count = array == NULL ? 0 : elem_count;
    1.29 -    iter.valid = cx_iter_valid;
    1.30 -    iter.current = cx_iter_current;
    1.31 -    iter.next = remove_keeps_order ? cx_iter_next_slow : cx_iter_next_fast;
    1.32 -    iter.remove = false;
    1.33 -    iter.mutating = true;
    1.34 +    iter.base.valid = cx_iter_valid;
    1.35 +    iter.base.current = cx_iter_current;
    1.36 +    iter.base.next = remove_keeps_order ? cx_iter_next_slow : cx_iter_next_fast;
    1.37 +    iter.base.remove = false;
    1.38 +    iter.base.mutating = true;
    1.39  
    1.40      return iter;
    1.41  }
    1.42 @@ -107,6 +107,6 @@
    1.43          size_t elem_count
    1.44  ) {
    1.45      CxIterator iter = cxMutIterator((void*)array, elem_size, elem_count, false);
    1.46 -    iter.mutating = false;
    1.47 +    iter.base.mutating = false;
    1.48      return iter;
    1.49  }

mercurial