src/utils_avltree.c: Fix `avl_pick'.
authorFlorian Forster <octo@crystal.wlan.home.verplant.org>
Wed, 14 Feb 2007 21:44:45 +0000 (22:44 +0100)
committerFlorian Forster <octo@crystal.wlan.home.verplant.org>
Wed, 14 Feb 2007 21:44:45 +0000 (22:44 +0100)
src/utils_avltree.c

index 4763d23..830b711 100644 (file)
@@ -583,7 +583,7 @@ avl_iterator_t *avl_get_iterator (avl_tree_t *t)
        return (avl_create_iterator (t, n));
 } /* avl_iterator_t *avl_get_iterator */
 
-int avl_pick (avl_tree_t *, void **key, void **value)
+int avl_pick (avl_tree_t *t, void **key, void **value)
 {
        avl_node_t *n;
        avl_node_t *p;
@@ -595,8 +595,8 @@ int avl_pick (avl_tree_t *, void **key, void **value)
        n = t->root;
        while ((n->left != NULL) || (n->right != NULL))
        {
-               int height_left  = (n->left  == NULL) ? 0 : n->left->traffic;
-               int height_right = (n->right == NULL) ? 0 : n->right->traffic;
+               int height_left  = (n->left  == NULL) ? 0 : n->left->height;
+               int height_right = (n->right == NULL) ? 0 : n->right->height;
 
                if (height_left > height_right)
                        n = n->left;
@@ -616,7 +616,7 @@ int avl_pick (avl_tree_t *, void **key, void **value)
        *value = n->value;
 
        free_node (n);
-       rebalance (p);
+       rebalance (t, p);
 
        return (0);
 } /* int avl_pick */