From 565ded935d985e8b08b48e0aff570a4c393e6858 Mon Sep 17 00:00:00 2001 From: Bert Belder Date: Thu, 14 Sep 2017 15:38:35 +0200 Subject: [PATCH] tree: allow keys with value zero --- src/tree.c | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/src/tree.c b/src/tree.c index b6a3e15..f921a90 100644 --- a/src/tree.c +++ b/src/tree.c @@ -26,18 +26,11 @@ void tree_node_init(tree_node_t* node) { int tree_add(tree_t* tree, tree_node_t* node, uintptr_t key) { tree_node_t* existing_node; - if (key == 0) - return_error(-1, ERROR_INVALID_PARAMETER); - if (node->key != 0) - return_error(-1, ERROR_ALREADY_EXISTS); - node->key = key; existing_node = RB_INSERT(tree, tree, node); - if (existing_node != NULL) { - node->key = 0; + if (existing_node != NULL) return_error(-1, ERROR_ALREADY_EXISTS); - } return 0; } @@ -45,9 +38,6 @@ int tree_add(tree_t* tree, tree_node_t* node, uintptr_t key) { int tree_del(tree_t* tree, tree_node_t* node) { tree_node_t* removed_node; - if (node->key == 0) - return_error(-1, ERROR_NOT_FOUND); - removed_node = RB_REMOVE(tree, tree, node); if (removed_node == NULL) @@ -55,8 +45,6 @@ int tree_del(tree_t* tree, tree_node_t* node) { else assert(removed_node == node); - node->key = 0; - return 0; } @@ -64,9 +52,6 @@ tree_node_t* tree_find(tree_t* tree, uintptr_t key) { tree_node_t* node; tree_node_t lookup; - if (key == 0) - return_error(NULL, ERROR_INVALID_PARAMETER); - memset(&lookup, 0, sizeof lookup); lookup.key = key;