]> git.mdlowis.com Git - archive/atc.git/commitdiff
Reworked insert code
authorMike D. Lowis <mike.lowis@gentex.com>
Tue, 7 Apr 2015 19:27:56 +0000 (15:27 -0400)
committerMike D. Lowis <mike.lowis@gentex.com>
Tue, 7 Apr 2015 19:27:56 +0000 (15:27 -0400)
source/runtime/splaytree.c

index 57dc11ca302fd0e848adb37c0b125d942b370784..79114ab5427a1b6ecf4cfebbd5b828f03fb9dd00 100644 (file)
@@ -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;