--- a/CHANGELOG Fri Oct 10 12:26:43 2025 +0200 +++ b/CHANGELOG Fri Oct 10 17:24:19 2025 +0200 @@ -11,6 +11,9 @@ * adds cxListRemoveAndGetFirst() and cxListRemoveAndGetLast(), and corresponding macro aliases cxListPopFront() and cxListPop() * adds cxListEmplace(), cxListEmplaceAt(), and cxMapEmplace() + * adds cxListInsertUnique() and cxListInsertUniqueArray() + * adds cx_array_insert_unique() and various convenience macros + * adds cx_linked_list_insert_unique() and cx_linked_list_insert_unique_chain() * adds cxBufferShrink() * adds cxTreeSize() * adds CX_PRIstr and CX_SFMT macros for formatting UCX strings @@ -26,6 +29,7 @@ * 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 critical bug in cx_array_insert_sorted() that caused an infinite loop when inserting duplicates * 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()