9 * adds cxListContains() |
9 * adds cxListContains() |
10 * adds cxListFirst() and cxListLast() |
10 * adds cxListFirst() and cxListLast() |
11 * adds cxListRemoveAndGetFirst() and cxListRemoveAndGetLast(), |
11 * adds cxListRemoveAndGetFirst() and cxListRemoveAndGetLast(), |
12 and corresponding macro aliases cxListPopFront() and cxListPop() |
12 and corresponding macro aliases cxListPopFront() and cxListPop() |
13 * adds cxListEmplace(), cxListEmplaceAt(), and cxMapEmplace() |
13 * adds cxListEmplace(), cxListEmplaceAt(), and cxMapEmplace() |
|
14 * adds cxListInsertUnique() and cxListInsertUniqueArray() |
|
15 * adds cx_array_insert_unique() and various convenience macros |
|
16 * adds cx_linked_list_insert_unique() and cx_linked_list_insert_unique_chain() |
14 * adds cxBufferShrink() |
17 * adds cxBufferShrink() |
15 * adds cxTreeSize() |
18 * adds cxTreeSize() |
16 * adds CX_PRIstr and CX_SFMT macros for formatting UCX strings |
19 * adds CX_PRIstr and CX_SFMT macros for formatting UCX strings |
17 * adds cx_strcpy() and cx_strcpy_a() |
20 * adds cx_strcpy() and cx_strcpy_a() |
18 * adds cxJsonArrRemove() and cxJsonObjRemove() |
21 * adds cxJsonArrRemove() and cxJsonObjRemove() |
24 * changes grow strategy for CxBuffer, which does now take the page size into account |
27 * changes grow strategy for CxBuffer, which does now take the page size into account |
25 * changes the implementation of cx_strreplacen() for improved efficiency |
28 * changes the implementation of cx_strreplacen() for improved efficiency |
26 * changes all cxListIterator() and cxMapIterator() family of functions to also accept NULL as argument |
29 * changes all cxListIterator() and cxMapIterator() family of functions to also accept NULL as argument |
27 * changes insert_element member function of CxList to accept NULL source and return a pointer to the inserted element |
30 * changes insert_element member function of CxList to accept NULL source and return a pointer to the inserted element |
28 * fixes critical memory overflow in the stack-based array reallocator (this unfortunately breaks the function signature) |
31 * fixes critical memory overflow in the stack-based array reallocator (this unfortunately breaks the function signature) |
|
32 * fixes critical bug in cx_array_insert_sorted() that caused an infinite loop when inserting duplicates |
29 * fixes mempool implementation not supporting NULL as argument for realloc |
33 * fixes mempool implementation not supporting NULL as argument for realloc |
30 * fixes mempool implementation not supporting zero as size for realloc |
34 * fixes mempool implementation not supporting zero as size for realloc |
31 * fixes that the elem_count member of an iterator was not updated after removing an element flagged by cxIteratorFlagRemoval() |
35 * fixes that the elem_count member of an iterator was not updated after removing an element flagged by cxIteratorFlagRemoval() |
32 * fixes that starting an iteration in a non-root node incorrectly continues iteration with the siblings of that node |
36 * fixes that starting an iteration in a non-root node incorrectly continues iteration with the siblings of that node |
33 * fixes unnecessary allocations in cx_strcat() family of functions |
37 * fixes unnecessary allocations in cx_strcat() family of functions |