diff -r 6ebf6fdfbc2c -r 0a2b328f5b91 src/tree.c --- a/src/tree.c Sun Sep 29 13:10:52 2024 +0200 +++ b/src/tree.c Sun Sep 29 13:32:33 2024 +0200 @@ -541,6 +541,7 @@ size_t cx_tree_add_iter( struct cx_iterator_base_s *iter, + size_t num, cx_tree_search_func sfunc, cx_tree_node_create_func cfunc, void *cdata, @@ -562,7 +563,7 @@ void *current_node = root; const void *elem; - for (void **eptr; + for (void **eptr; processed < num && iter->valid(iter) && (eptr = iter->current(iter)) != NULL; iter->next(iter)) { elem = *eptr; @@ -659,7 +660,7 @@ // otherwise, create iterator and hand over to other function CxIterator iter = cxIterator(src, elem_size, num); - return cx_tree_add_iter(cxIteratorRef(iter), sfunc, + return cx_tree_add_iter(cxIteratorRef(iter), num, sfunc, cfunc, cdata, failed, root, loc_parent, loc_children, loc_last_child, loc_prev, loc_next);