1.1 --- a/src/linked_list.c Mon Feb 08 00:14:07 2021 +0100 1.2 +++ b/src/linked_list.c Mon Feb 08 00:18:09 2021 +0100 1.3 @@ -155,7 +155,7 @@ 1.4 CxList cxLinkedListCreate(CxAllocator allocator, CxListComparator comparator, size_t item_size) { 1.5 CxLinkedListDesc desc; 1.6 desc.item_size = item_size; 1.7 - desc.begin = desc.end = NULL; 1.8 + desc.begin = NULL; 1.9 desc.loc_prev = offsetof(struct cx_linked_list_node, prev); 1.10 desc.loc_next = offsetof(struct cx_linked_list_node, next); 1.11 1.12 @@ -174,8 +174,7 @@ 1.13 list->data.capacity = SIZE_MAX; 1.14 1.15 cx_linked_list *ll = (cx_linked_list *) list->data.listdata; 1.16 - ll->begin = desc.begin ? *desc.begin : NULL; 1.17 - ll->end = desc.end ? *desc.end : NULL; 1.18 + ll->begin = desc.begin; 1.19 ll->loc_prev = desc.loc_prev; 1.20 ll->loc_next = desc.loc_next; 1.21 cxLinkedListRecalculateSize(list); 1.22 @@ -188,13 +187,17 @@ 1.23 1.24 if (ll->begin == NULL) { 1.25 list->data.size = 0; 1.26 + ll->end = NULL; 1.27 return 0; 1.28 } else { 1.29 void *cur = ll->begin; 1.30 + void *last; 1.31 size_t size; 1.32 do { 1.33 + last = cur; 1.34 size++; 1.35 } while ((cur = *CX_LL_PTR(cur, ll->loc_next)) != NULL); 1.36 + ll->end = last; 1.37 list->data.size = size; 1.38 return size; 1.39 }