summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2012-05-08 16:10:58 +0200
committerRichard Braun <rbraun@sceen.net>2012-05-08 16:10:58 +0200
commit15192dbffe4d7bff096fe4a6e1cc6c7a17c44fc5 (patch)
tree9a7e70b1d32550bac7e422ad1bf37c71b5a5339a
parentd9e9af9ce5a3e8c70c33ac2adbdcb51cfd999f99 (diff)
Revert "rdxtree: new iterator functions"
This reverts commit 47563aa7db90dbc868e55b337704f083dc5ccb58. This implementation isn't efficient enough for node walking.
-rw-r--r--rdxtree.c23
-rw-r--r--rdxtree.h16
2 files changed, 3 insertions, 36 deletions
diff --git a/rdxtree.c b/rdxtree.c
index aad27c8..0847e2c 100644
--- a/rdxtree.c
+++ b/rdxtree.c
@@ -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)
diff --git a/rdxtree.h b/rdxtree.h
index bada34c..438e446 100644
--- a/rdxtree.h
+++ b/rdxtree.h
@@ -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.