src/linked_list.c

changeset 478
599770bb6314
parent 477
73a93c7a56ae
child 480
e3be53a3354f
     1.1 --- a/src/linked_list.c	Mon Dec 20 11:26:39 2021 +0100
     1.2 +++ b/src/linked_list.c	Mon Dec 20 11:58:36 2021 +0100
     1.3 @@ -52,9 +52,8 @@
     1.4  }
     1.5  
     1.6  void *cx_linked_list_last(void *node, ptrdiff_t loc_next) {
     1.7 +    assert(node != NULL);
     1.8      assert(loc_next >= 0);
     1.9 -    if (node == NULL)
    1.10 -        return NULL;
    1.11  
    1.12      void *cur = node;
    1.13      void *last;
    1.14 @@ -67,6 +66,7 @@
    1.15  
    1.16  void *cx_linked_list_prev(void *begin, ptrdiff_t loc_next, void *node) {
    1.17      assert(begin != NULL);
    1.18 +    assert(node != NULL);
    1.19      assert(loc_next >= 0);
    1.20      if (begin == node) return NULL;
    1.21      void *cur = begin;
    1.22 @@ -79,12 +79,13 @@
    1.23  }
    1.24  
    1.25  void cx_linked_list_add(void **begin, void **end, ptrdiff_t loc_prev, ptrdiff_t loc_next, void *new_node) {
    1.26 +    assert(new_node != NULL);
    1.27      assert(loc_next >= 0);
    1.28      assert(CX_LL_PTR(new_node, loc_next) == NULL);
    1.29      void *last;
    1.30      if (end == NULL) {
    1.31          assert(begin != NULL);
    1.32 -        last = cx_linked_list_last(*begin, loc_next);
    1.33 +        last = *begin == NULL ? NULL : cx_linked_list_last(*begin, loc_next);
    1.34      } else {
    1.35          last = *end;
    1.36      }
    1.37 @@ -110,13 +111,14 @@
    1.38  }
    1.39  
    1.40  void cx_linked_list_prepend(void **begin, void **end, ptrdiff_t loc_prev, ptrdiff_t loc_next, void *new_node) {
    1.41 +    assert(new_node != NULL);
    1.42      assert(loc_next >= 0);
    1.43      assert(CX_LL_PTR(new_node, loc_next) == NULL);
    1.44      void *first;
    1.45      if (begin == NULL) {
    1.46          assert(end != NULL);
    1.47          assert(loc_prev >= 0);
    1.48 -        first = cx_linked_list_first(*end, loc_prev);
    1.49 +        first = *end == NULL ? NULL : cx_linked_list_first(*end, loc_prev);
    1.50      } else {
    1.51          first = *begin;
    1.52      }

mercurial