--- a/src/linked_list.c Mon Dec 20 11:26:39 2021 +0100 +++ b/src/linked_list.c Mon Dec 20 11:58:36 2021 +0100 @@ -52,9 +52,8 @@ } void *cx_linked_list_last(void *node, ptrdiff_t loc_next) { + assert(node != NULL); assert(loc_next >= 0); - if (node == NULL) - return NULL; void *cur = node; void *last; @@ -67,6 +66,7 @@ void *cx_linked_list_prev(void *begin, ptrdiff_t loc_next, void *node) { assert(begin != NULL); + assert(node != NULL); assert(loc_next >= 0); if (begin == node) return NULL; void *cur = begin; @@ -79,12 +79,13 @@ } void cx_linked_list_add(void **begin, void **end, ptrdiff_t loc_prev, ptrdiff_t loc_next, void *new_node) { + assert(new_node != NULL); assert(loc_next >= 0); assert(CX_LL_PTR(new_node, loc_next) == NULL); void *last; if (end == NULL) { assert(begin != NULL); - last = cx_linked_list_last(*begin, loc_next); + last = *begin == NULL ? NULL : cx_linked_list_last(*begin, loc_next); } else { last = *end; } @@ -110,13 +111,14 @@ } void cx_linked_list_prepend(void **begin, void **end, ptrdiff_t loc_prev, ptrdiff_t loc_next, void *new_node) { + assert(new_node != NULL); assert(loc_next >= 0); assert(CX_LL_PTR(new_node, loc_next) == NULL); void *first; if (begin == NULL) { assert(end != NULL); assert(loc_prev >= 0); - first = cx_linked_list_first(*end, loc_prev); + first = *end == NULL ? NULL : cx_linked_list_first(*end, loc_prev); } else { first = *begin; }