39 assert(compare !=
NULL);
41 if (allocator ==
NULL)
63 assert(tree !=
NULL && item !=
NULL);
99 assert(tree !=
NULL && item !=
NULL);
104 for (q = z, p = y;; q = p, p = p->
tavl_link[dir]) {
108 return &p->tavl_data;
110 if (p->tavl_balance != 0)
112 da[k++] = dir = cmp > 0;
142 for (p = y, k = 0; p != n; p = p->
tavl_link[da[k]], k++)
245 return p ==
NULL || *p == item ?
NULL : *p;
256 if (p ==
NULL || *p == item)
309 assert(tree !=
NULL && item !=
NULL);
315 for (cmp = -1; cmp != 0;
403 q = find_parent(tree, y);
546 assert(tree !=
NULL && trav !=
NULL);
564 assert(tree !=
NULL && trav !=
NULL);
645 assert(trav !=
NULL && src !=
NULL);
658 assert(trav !=
NULL);
679 assert(trav !=
NULL);
698 assert(trav !=
NULL);
732 new->tavl_link[dir] = dst->
tavl_link[dir];
734 new->tavl_link[!dir] = dst;
744 if (new->tavl_data ==
NULL)
790 if (new->tavl_count == 0)
803 if (!copy_node(
new, q, 0, p->
tavl_link[0], copy)) {
804 copy_error_recovery(rq.
tavl_link[0],
new, destroy);
828 if (!copy_node(
new, q, 1, p->
tavl_link[1], copy)) {
829 copy_error_recovery(rq.
tavl_link[0],
new, destroy);
867 assert(allocator !=
NULL && size > 0);
874 assert(allocator !=
NULL && block !=
NULL);
889 assert(p !=
NULL && *p == item);