From 50241436ac0caa72bdc089860fc729e03546b951 Mon Sep 17 00:00:00 2001 From: "Mike D. Lowis" Date: Tue, 7 Apr 2015 15:27:56 -0400 Subject: [PATCH] Reworked insert code --- source/runtime/splaytree.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/source/runtime/splaytree.c b/source/runtime/splaytree.c index 57dc11c..79114ab 100644 --- a/source/runtime/splaytree.c +++ b/source/runtime/splaytree.c @@ -85,17 +85,18 @@ void splaytree_insert(splaytree_t* tree, node_type_t tag, void* value) node_type_t splaytree_lookup(splaytree_t* tree, uintptr_t address, void** value) { node_type_t tag = NONE; - node_t** current = &(tree->root); - while(*current != NULL) { - uintptr_t start = get_start_addr(*current); - uintptr_t end = get_end_addr(*current); + node_t* current = tree->root; + while(current != NULL) { + uintptr_t start = get_start_addr(current); + uintptr_t end = get_end_addr(current); if ((start <= address) && (address < end)) { - *value = (*current)->ptr.raw; + tag = current->tag; + *value = current->ptr.raw; break; } else if (start < address) { - current = &((*current)->left); + current = current->left; } else { - current = &((*current)->right); + current = current->right; } } return tag; -- 2.54.0