diff options
author | Junio C Hamano <gitster@pobox.com> | 2021-12-15 20:39:51 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-12-15 20:39:51 +0300 |
commit | aa5937d2d9a52512133027ccd556083aad8bfedc (patch) | |
tree | 9e12c9e98ac1e088cae1c9699a15340626daf65d | |
parent | e1d928826764c02ad145e93d104ee1209b80b405 (diff) | |
parent | 2c68f577fc8a400f4d354f4700e4809c1bfd6470 (diff) |
Merge branch 'ew/cbtree-remove-unused-and-broken-cb-unlink'
Code clean-up.
* ew/cbtree-remove-unused-and-broken-cb-unlink:
cbtree: remove broken and unused cb_unlink
-rw-r--r-- | cbtree.c | 32 | ||||
-rw-r--r-- | cbtree.h | 1 |
2 files changed, 0 insertions, 33 deletions
@@ -95,38 +95,6 @@ struct cb_node *cb_lookup(struct cb_tree *t, const uint8_t *k, size_t klen) return p && !memcmp(p->k, k, klen) ? p : NULL; } -struct cb_node *cb_unlink(struct cb_tree *t, const uint8_t *k, size_t klen) -{ - struct cb_node **wherep = &t->root; - struct cb_node **whereq = NULL; - struct cb_node *q = NULL; - size_t direction = 0; - uint8_t c; - struct cb_node *p = t->root; - - if (!p) return NULL; /* empty tree, nothing to delete */ - - /* traverse to find best match, keeping link to parent */ - while (1 & (uintptr_t)p) { - whereq = wherep; - q = cb_node_of(p); - c = q->byte < klen ? k[q->byte] : 0; - direction = (1 + (q->otherbits | c)) >> 8; - wherep = q->child + direction; - p = *wherep; - } - - if (memcmp(p->k, k, klen)) - return NULL; /* no match, nothing unlinked */ - - /* found an exact match */ - if (whereq) /* update parent */ - *whereq = q->child[1 - direction]; - else - t->root = NULL; - return p; -} - static enum cb_next cb_descend(struct cb_node *p, cb_iter fn, void *arg) { if (1 & (uintptr_t)p) { @@ -47,7 +47,6 @@ static inline void cb_init(struct cb_tree *t) struct cb_node *cb_lookup(struct cb_tree *, const uint8_t *k, size_t klen); struct cb_node *cb_insert(struct cb_tree *, struct cb_node *, size_t klen); -struct cb_node *cb_unlink(struct cb_tree *t, const uint8_t *k, size_t klen); typedef enum cb_next (*cb_iter)(struct cb_node *, void *arg); |