about summary refs log tree commit diff stats
path: root/src/tools
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-01-23 10:01:11 +0100
committerptitSeb <sebastien.chev@gmail.com>2024-01-23 10:01:11 +0100
commit89da530898fa08c23b59e3e3bf64f266f113e014 (patch)
treee38ddfff281f2d2144916be550b839081cbcd095 /src/tools
parent2367e7df504dadd495abe095bd167cce67afb713 (diff)
downloadbox64-89da530898fa08c23b59e3e3bf64f266f113e014.tar.gz
box64-89da530898fa08c23b59e3e3bf64f266f113e014.zip
[DYNAREC] use an rbtree for dynablock size and max_db_size update
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/rbtree.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/tools/rbtree.c b/src/tools/rbtree.c
index 1fa08b71..a7e4daf1 100644
--- a/src/tools/rbtree.c
+++ b/src/tools/rbtree.c
@@ -782,6 +782,20 @@ dynarec_log(LOG_DEBUG, "rb_unset(tree, 0x%lX, 0x%lX);\n", start, end);
     return 0;
 }
 
+uintptr_t rb_get_righter(rbtree* tree)
+{
+dynarec_log(LOG_DEBUG, "rb_get_righter(tree);\n");
+    if (!tree->root) return 0;
+
+    rbnode *node = tree->root;
+    while (node) {
+        if(!node->right)
+            return node->start;
+        node = node->right;
+    }
+    return 0;
+}
+
 #include <stdio.h>
 void print_rbnode(const rbnode *node, unsigned depth, uintptr_t minstart, uintptr_t maxend, unsigned *bdepth) {
     if (!node) {