diff -r bbdc4aee8534 -r ff077f793c5d docs/Writerside/topics/about.md --- a/docs/Writerside/topics/about.md Tue Sep 23 20:31:50 2025 +0200 +++ b/docs/Writerside/topics/about.md Wed Sep 24 23:50:15 2025 +0200 @@ -30,16 +30,18 @@ * adds cxMempoolTransfer() and cxMempoolTransferObject() * adds support for different destruction strategies in CxMempool +* adds new key-value-based list implementation * adds cxListSet() * adds cxListContains() * adds cxListFirst() and cxListLast() * adds cxListRemoveAndGetFirst() and cxListRemoveAndGetLast(), and corresponding macro aliases cxListPopFront() and cxListPop() -* adds cxListEmplace() and cxListEmplaceAt() +* adds cxListEmplace(), cxListEmplaceAt(), and cxMapEmplace() * adds cxBufferShrink() * adds cxTreeSize() * adds CX_PRIstr and CX_SFMT macros for formatting UCX strings * adds cx_strcpy() and cx_strcpy_a() +* adds cxJsonArrRemove() and cxJsonObjRemove() * adds cxStdlibAllocator and allows changes of cxDefaultAllocator * improves performance of the CxList array list implementation * changes cx_str() and cx_mutstr() to allow NULL strings @@ -47,11 +49,12 @@ * changes grow strategy for the memory pool to reduce reallocations * changes grow strategy for CxBuffer, which does now take the page size into account * changes the implementation of cx_strreplacen() for improved efficiency -* changes all cxListIterator() without index to also accept NULL as list argument +* changes all cxListIterator() and cxMapIterator() family of functions to also accept NULL as argument * changes insert_element member function of CxList to accept NULL source and return a pointer to the inserted element * fixes critical memory overflow in the stack-based array reallocator (this unfortunately breaks the function signature) * fixes mempool implementation not supporting NULL as argument for realloc * fixes mempool implementation not supporting zero as size for realloc +* fixes that the elem_count member of an iterator was not updated after removing an element flagged by cxIteratorFlagRemoval() * fixes that starting an iteration in a non-root node incorrectly continues iteration with the siblings of that node * fixes unnecessary allocations in cx_strcat() family of functions * fixes errno value after failing cxBufferSeek() to be consistently EINVAL