diff options
Diffstat (limited to 'epan/wmem/wmem_splay.c')
-rw-r--r-- | epan/wmem/wmem_splay.c | 110 |
1 files changed, 55 insertions, 55 deletions
diff --git a/epan/wmem/wmem_splay.c b/epan/wmem/wmem_splay.c index 59d035b84a..e6ae05ad9f 100644 --- a/epan/wmem/wmem_splay.c +++ b/epan/wmem/wmem_splay.c @@ -182,59 +182,59 @@ wmem_splay_pred_succ(wmem_splay_t *tree, const void *key, } } -#define TRAVERSE(CUR, NXT) \ -do { \ - if ((*CUR) == NULL) { \ - return (CUR); \ - } \ - cmp = COMPARE(key, (*CUR)->key); \ - if (cmp == 0) { \ - return (CUR); \ - } \ - else if (cmp < 0) { \ - (NXT) = &((*CUR)->left); \ - } \ - else { \ - (NXT) = &((*CUR)->right); \ - } \ +#define TRAVERSE(CUR, NXT, KEY) \ +do { \ + if ((*CUR) == NULL) { \ + return (CUR); \ + } \ + cmp = COMPARE((KEY), (*CUR)->key); \ + if (cmp == 0) { \ + return (CUR); \ + } \ + else if (cmp < 0) { \ + (NXT) = &((*CUR)->left); \ + } \ + else { \ + (NXT) = &((*CUR)->right); \ + } \ } while (0) -#define ZIGZIG(CHILD) \ -do { \ - tmp = *p; \ - *p = tmp->CHILD; \ - tmp->CHILD = *gp; \ - *gp = tmp; \ - cmp = COMPARE(key, (*cur)->key); \ - if (cmp == 0) { \ - return cur; \ - } \ - else if (cmp < 0) { \ - gp = &((*cur)->left); \ - } \ - else { \ - gp = &((*cur)->right); \ - } \ +#define ZIGZIG(CHILD, KEY) \ +do { \ + tmp = *p; \ + *p = tmp->CHILD; \ + tmp->CHILD = *gp; \ + *gp = tmp; \ + cmp = COMPARE((KEY), (*cur)->key); \ + if (cmp == 0) { \ + return cur; \ + } \ + else if (cmp < 0) { \ + gp = &((*cur)->left); \ + } \ + else { \ + gp = &((*cur)->right); \ + } \ } while (0) -#define ZIGZAG(LEFT, RIGHT) \ -do { \ - tmp = *cur; \ - *cur = tmp->LEFT; \ - tmp->LEFT = *p; \ - *p = tmp->RIGHT; \ - tmp->RIGHT = *gp; \ - *gp = tmp; \ - cmp = COMPARE(key, tmp->key); \ - if (cmp == 0) { \ - return gp; \ - } \ - else if (cmp < 0) { \ - gp = &(tmp->left->right); \ - } \ - else { \ - gp = &(tmp->right->left); \ - } \ +#define ZIGZAG(LEFT, RIGHT, KEY) \ +do { \ + tmp = *cur; \ + *cur = tmp->LEFT; \ + tmp->LEFT = *p; \ + *p = tmp->RIGHT; \ + tmp->RIGHT = *gp; \ + *gp = tmp; \ + cmp = COMPARE((KEY), tmp->key); \ + if (cmp == 0) { \ + return gp; \ + } \ + else if (cmp < 0) { \ + gp = &(tmp->left->right); \ + } \ + else { \ + gp = &(tmp->right->left); \ + } \ } while (0) static wmem_splay_node_t ** @@ -246,8 +246,8 @@ wmem_splay_splay(wmem_splay_t *tree, const void *key) gp = &(tree->root); while (TRUE) { - TRAVERSE(gp, p); - TRAVERSE(p, cur); + TRAVERSE(gp, p, key); + TRAVERSE(p, cur, key); if ((*cur) == NULL) { return cur; @@ -255,18 +255,18 @@ wmem_splay_splay(wmem_splay_t *tree, const void *key) if (p == &((*gp)->left)) { if (cur == &((*p)->left)) { - ZIGZIG(right); + ZIGZIG(right, key); } else { - ZIGZAG(left, right); + ZIGZAG(left, right, key); } } else { if (cur == &((*p)->right)) { - ZIGZIG(left); + ZIGZIG(left, key); } else { - ZIGZAG(right, left); + ZIGZAG(right, left, key); } } } |