about summary refs log tree commit diff stats
path: root/src/dynarec/dynarec_native.c
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2023-03-12 18:12:57 +0100
committerptitSeb <sebastien.chev@gmail.com>2023-03-12 18:12:57 +0100
commit42b067dc39c7a5d32c59822f3d05a9b82394f6f1 (patch)
treedf5fcdaaf789ee0d1cc3f06840dba2537c766d65 /src/dynarec/dynarec_native.c
parent089e3816a8355e082109d14867962dae0debf490 (diff)
downloadbox64-42b067dc39c7a5d32c59822f3d05a9b82394f6f1.tar.gz
box64-42b067dc39c7a5d32c59822f3d05a9b82394f6f1.zip
[DYNAREC] Fix some potential issue in the next jump handling
Diffstat (limited to 'src/dynarec/dynarec_native.c')
-rwxr-xr-xsrc/dynarec/dynarec_native.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/dynarec/dynarec_native.c b/src/dynarec/dynarec_native.c
index 06c4878c..887e3869 100755
--- a/src/dynarec/dynarec_native.c
+++ b/src/dynarec/dynarec_native.c
@@ -84,11 +84,13 @@ uintptr_t get_closest_next(dynarec_native_t *dyn, uintptr_t addr) {
     uintptr_t best = 0;
     int i = 0;
     while((i<dyn->next_sz) && (best!=addr)) {
-        if(dyn->next[i]<addr) { // remove the address, it's before current address
-            dyn->next[i] = 0;
-        } else {
-            if((dyn->next[i]<best) || !best)
-                best = dyn->next[i];
+        if(dyn->next[i]) {
+            if(dyn->next[i]<addr) { // remove the address, it's before current address
+                dyn->next[i] = 0;
+            } else {
+                if((dyn->next[i]<best) || !best)
+                    best = dyn->next[i];
+            }
         }
         ++i;
     }