summaryrefslogtreecommitdiff
path: root/src/utils/rbtree.c
diff options
context:
space:
mode:
authorFrançois Revel <mmu_man@netsurf-browser.org>2008-11-29 22:55:56 +0000
committerFrançois Revel <mmu_man@netsurf-browser.org>2008-11-29 22:55:56 +0000
commit50e64e8710e3af657ad97053e16435c284dc80e2 (patch)
treead2ce27279bcec54352257362197d5bc66cfb56b /src/utils/rbtree.c
parentcfad5e411a897bd30bf9f6014e58a25f1ecb69da (diff)
downloadlibparserutils-50e64e8710e3af657ad97053e16435c284dc80e2.tar.gz
libparserutils-50e64e8710e3af657ad97053e16435c284dc80e2.tar.bz2
C89
svn path=/trunk/libparserutils/; revision=5838
Diffstat (limited to 'src/utils/rbtree.c')
-rw-r--r--src/utils/rbtree.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/utils/rbtree.c b/src/utils/rbtree.c
index 4f2b64b..4fd3c23 100644
--- a/src/utils/rbtree.c
+++ b/src/utils/rbtree.c
@@ -267,6 +267,7 @@ parserutils_error parserutils_rbtree_delete(parserutils_rbtree *tree,
rbnode *rbtree_insert_internal(parserutils_rbtree *tree, rbnode *current,
void *key, void *value, void **oldvalue)
{
+ int cmp;
if (current == NULL) {
rbnode *node = rbnode_create(tree->alloc, tree->pw, key, value);
if (node == NULL)
@@ -281,7 +282,7 @@ rbnode *rbtree_insert_internal(parserutils_rbtree *tree, rbnode *current,
if (isRed(current->left) && isRed(current->right))
colourFlip(current);
- int cmp = tree->cmp(key, current->key);
+ cmp = tree->cmp(key, current->key);
if (cmp == 0) {
*oldvalue = current->value;
@@ -355,10 +356,11 @@ rbnode *rbtree_delete_internal(parserutils_rbtree *tree, rbnode *current,
/* Must recalculate here, as current may have changed */
if (tree->cmp(key, current->key) == 0) {
+ rbnode *successor;
*intkey = current->key;
*value = current->value;
- rbnode *successor = findMin(current->right);
+ successor = findMin(current->right);
current->value = successor->value;
current->key = successor->key;