28 |
28 |
29 ### Version 3.2 - preview {collapsible="true"} |
29 ### Version 3.2 - preview {collapsible="true"} |
30 |
30 |
31 * adds cxMempoolTransfer() and cxMempoolTransferObject() |
31 * adds cxMempoolTransfer() and cxMempoolTransferObject() |
32 * adds support for different destruction strategies in CxMempool |
32 * adds support for different destruction strategies in CxMempool |
|
33 * adds new key-value-based list implementation |
33 * adds cxListSet() |
34 * adds cxListSet() |
34 * adds cxListContains() |
35 * adds cxListContains() |
35 * adds cxListFirst() and cxListLast() |
36 * adds cxListFirst() and cxListLast() |
36 * adds cxListRemoveAndGetFirst() and cxListRemoveAndGetLast(), |
37 * adds cxListRemoveAndGetFirst() and cxListRemoveAndGetLast(), |
37 and corresponding macro aliases cxListPopFront() and cxListPop() |
38 and corresponding macro aliases cxListPopFront() and cxListPop() |
38 * adds cxListEmplace() and cxListEmplaceAt() |
39 * adds cxListEmplace(), cxListEmplaceAt(), and cxMapEmplace() |
39 * adds cxBufferShrink() |
40 * adds cxBufferShrink() |
40 * adds cxTreeSize() |
41 * adds cxTreeSize() |
41 * adds CX_PRIstr and CX_SFMT macros for formatting UCX strings |
42 * adds CX_PRIstr and CX_SFMT macros for formatting UCX strings |
42 * adds cx_strcpy() and cx_strcpy_a() |
43 * adds cx_strcpy() and cx_strcpy_a() |
|
44 * adds cxJsonArrRemove() and cxJsonObjRemove() |
43 * adds cxStdlibAllocator and allows changes of cxDefaultAllocator |
45 * adds cxStdlibAllocator and allows changes of cxDefaultAllocator |
44 * improves performance of the CxList array list implementation |
46 * improves performance of the CxList array list implementation |
45 * changes cx_str() and cx_mutstr() to allow NULL strings |
47 * changes cx_str() and cx_mutstr() to allow NULL strings |
46 * changes cx_strcast() to also accept C-strings as input |
48 * changes cx_strcast() to also accept C-strings as input |
47 * changes grow strategy for the memory pool to reduce reallocations |
49 * changes grow strategy for the memory pool to reduce reallocations |
48 * changes grow strategy for CxBuffer, which does now take the page size into account |
50 * changes grow strategy for CxBuffer, which does now take the page size into account |
49 * changes the implementation of cx_strreplacen() for improved efficiency |
51 * changes the implementation of cx_strreplacen() for improved efficiency |
50 * changes all cxListIterator() without index to also accept NULL as list argument |
52 * changes all cxListIterator() and cxMapIterator() family of functions to also accept NULL as argument |
51 * changes insert_element member function of CxList to accept NULL source and return a pointer to the inserted element |
53 * changes insert_element member function of CxList to accept NULL source and return a pointer to the inserted element |
52 * fixes critical memory overflow in the stack-based array reallocator (this unfortunately breaks the function signature) |
54 * fixes critical memory overflow in the stack-based array reallocator (this unfortunately breaks the function signature) |
53 * fixes mempool implementation not supporting NULL as argument for realloc |
55 * fixes mempool implementation not supporting NULL as argument for realloc |
54 * fixes mempool implementation not supporting zero as size for realloc |
56 * fixes mempool implementation not supporting zero as size for realloc |
|
57 * fixes that the elem_count member of an iterator was not updated after removing an element flagged by cxIteratorFlagRemoval() |
55 * fixes that starting an iteration in a non-root node incorrectly continues iteration with the siblings of that node |
58 * fixes that starting an iteration in a non-root node incorrectly continues iteration with the siblings of that node |
56 * fixes unnecessary allocations in cx_strcat() family of functions |
59 * fixes unnecessary allocations in cx_strcat() family of functions |
57 * fixes errno value after failing cxBufferSeek() to be consistently EINVAL |
60 * fixes errno value after failing cxBufferSeek() to be consistently EINVAL |
58 * fixes implementation of cxBufferTerminate() |
61 * fixes implementation of cxBufferTerminate() |
59 * fixes allocator arguments for some printf.h functions not being const |
62 * fixes allocator arguments for some printf.h functions not being const |