diff options
author | Richard Braun <rbraun@sceen.net> | 2012-05-08 16:10:58 +0200 |
---|---|---|
committer | Richard Braun <rbraun@sceen.net> | 2012-05-08 16:10:58 +0200 |
commit | 15192dbffe4d7bff096fe4a6e1cc6c7a17c44fc5 (patch) | |
tree | 9a7e70b1d32550bac7e422ad1bf37c71b5a5339a | |
parent | d9e9af9ce5a3e8c70c33ac2adbdcb51cfd999f99 (diff) |
Revert "rdxtree: new iterator functions"
This reverts commit 47563aa7db90dbc868e55b337704f083dc5ccb58.
This implementation isn't efficient enough for node walking.
-rw-r--r-- | rdxtree.c | 23 | ||||
-rw-r--r-- | rdxtree.h | 16 |
2 files changed, 3 insertions, 36 deletions
@@ -531,8 +531,7 @@ void * rdxtree_remove(struct rdxtree *tree, unsigned long key) return node; } -static void ** rdxtree_lookup_prim(struct rdxtree *tree, unsigned long key, - struct rdxtree_node **nodep) +static void ** rdxtree_lookup_prim(struct rdxtree *tree, unsigned long key) { struct rdxtree_node *node, *prev; unsigned int index; @@ -547,9 +546,6 @@ static void ** rdxtree_lookup_prim(struct rdxtree *tree, unsigned long key, if (tree->root == NULL) return NULL; - if (nodep != NULL) - *nodep = NULL; - return &tree->root; } @@ -570,9 +566,6 @@ static void ** rdxtree_lookup_prim(struct rdxtree *tree, unsigned long key, if (node == NULL) return NULL; - if (nodep != NULL) - *nodep = prev; - return &prev->slots[index]; } @@ -580,23 +573,13 @@ void * rdxtree_lookup(struct rdxtree *tree, unsigned long key) { void **slot; - slot = rdxtree_lookup_prim(tree, key, NULL); + slot = rdxtree_lookup_prim(tree, key); return (slot == NULL) ? NULL : *slot; } void ** rdxtree_lookup_slot(struct rdxtree *tree, unsigned long key) { - return rdxtree_lookup_prim(tree, key, NULL); -} - -void * rdxtree_lookup_iter(struct rdxtree *tree, unsigned long key, - struct rdxtree_iter *iter) -{ - struct rdxtree_node **node_ptr; - - node_ptr = (struct rdxtree_node **)&iter->node; - iter->slot = rdxtree_lookup_prim(tree, key, node_ptr); - return (iter->slot == NULL) ? NULL : *iter->slot; + return rdxtree_lookup_prim(tree, key); } void * rdxtree_replace_slot(void **slot, void *ptr) @@ -76,14 +76,6 @@ static inline void rdxtree_iter_init(struct rdxtree_iter *iter) } /* - * Return the slot currently referenced by an iterator. - */ -static inline void ** rdxtree_iter_slot(struct rdxtree_iter *iter) -{ - return iter->slot; -} - -/* * Insert a pointer in a tree. * * The ptr parameter must not be null. @@ -148,14 +140,6 @@ void * rdxtree_lookup(struct rdxtree *tree, unsigned long key); void ** rdxtree_lookup_slot(struct rdxtree *tree, unsigned long key); /* - * Look up a pointer in a tree and initialize an iterator at its key. - * - * The matching pointer is returned if successful, null otherwise. - */ -void * rdxtree_lookup_iter(struct rdxtree *tree, unsigned long key, - struct rdxtree_iter *iter); - -/* * Replace a pointer in a tree. * * The ptr parameter must not be null. The previous pointer is returned. |