summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrsiddharth <s@ricketyspace.net>2020-02-03 23:22:38 -0500
committerrsiddharth <s@ricketyspace.net>2020-04-17 20:56:36 -0400
commite6f4ddb3eba6e475df7796b7a4e2fa2b07df755e (patch)
treed18d6242be7321a9aae5d43e5fc0ba8e431ab780
parenta70ebb56c004379d09c26dc22612498fde47836d (diff)
nserver/src/tstree.c: Update TSTree_search_prefix.
-rw-r--r--nserver/src/tstree.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/nserver/src/tstree.c b/nserver/src/tstree.c
index eee00b3..f73aa63 100644
--- a/nserver/src/tstree.c
+++ b/nserver/src/tstree.c
@@ -74,7 +74,6 @@ void *TSTree_search_prefix(TSTree *root, const char *key, size_t len)
return NULL;
TSTree *node = root;
- TSTree *last = NULL;
size_t i = 0;
while (i < len && node) {
@@ -83,8 +82,9 @@ void *TSTree_search_prefix(TSTree *root, const char *key, size_t len)
} else if (key[i] == node->splitchar) {
i++;
if (i < len) {
- if (node->value)
- last = node;
+ if (node->value) {
+ return node->value;
+ }
node = node->equal;
}
} else {
@@ -92,15 +92,7 @@ void *TSTree_search_prefix(TSTree *root, const char *key, size_t len)
}
}
- node = node ? node : last;
-
- // traverse until we find the first value in the equal chain
- // this is then the first node with this prefix
- while (node && !node->value) {
- node = node->equal;
- }
-
- return node ? node->value : NULL;
+ return NULL;
}
void TSTree_collect_keys(TSTree *node, char *key, size_t key_sz, DArray *array)