* Recursive insertion
*/
-static Node * insert_sub(Tree *tree, Node *current, long value, Node *node)
+static Node * insert_sub(Tree *tree, Node *current, uintptr_t value, Node *node)
{
int cmp;
return rebalance_on_insert(current);
}
-void aatree_insert(Tree *tree, long value, Node *node)
+void aatree_insert(Tree *tree, uintptr_t value, Node *node)
{
tree->root = insert_sub(tree, tree->root, value, node);
}
return new;
}
-static Node *remove_sub(Tree *tree, Node *current, long value)
+static Node *remove_sub(Tree *tree, Node *current, uintptr_t value)
{
int cmp;
return rebalance_on_remove(current);
}
-void aatree_remove(Tree *tree, long value)
+void aatree_remove(Tree *tree, uintptr_t value)
{
tree->root = remove_sub(tree, tree->root, value);
}
/*
* search function
*/
-Node *aatree_search(Tree *tree, long value)
+Node *aatree_search(Tree *tree, uintptr_t value)
{
Node *current = tree->root;
while (current != NIL) {
struct AANode;
/** Callback for node comparision against value */
-typedef int (*aatree_cmp_f)(long, struct AANode *node);
+typedef int (*aatree_cmp_f)(uintptr_t, struct AANode *node);
/** Callback for walking the tree */
typedef void (*aatree_walker_f)(struct AANode *n, void *arg);
void aatree_init(struct AATree *tree, aatree_cmp_f cmpfn, aatree_walker_f release_cb);
/** Search for node */
-struct AANode *aatree_search(struct AATree *tree, long value);
+struct AANode *aatree_search(struct AATree *tree, uintptr_t value);
/** Insert new node */
-void aatree_insert(struct AATree *tree, long value, struct AANode *node);
+void aatree_insert(struct AATree *tree, uintptr_t value, struct AANode *node);
/** Remote node */
-void aatree_remove(struct AATree *tree, long value);
+void aatree_remove(struct AATree *tree, uintptr_t value);
/** Walk over all nodes */
void aatree_walk(struct AATree *tree, enum AATreeWalkType wtype, aatree_walker_f walker, void *arg);