diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-03-12 18:12:57 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-03-12 18:12:57 +0100 |
| commit | 42b067dc39c7a5d32c59822f3d05a9b82394f6f1 (patch) | |
| tree | df5fcdaaf789ee0d1cc3f06840dba2537c766d65 /src/dynarec/dynarec_native.c | |
| parent | 089e3816a8355e082109d14867962dae0debf490 (diff) | |
| download | box64-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-x | src/dynarec/dynarec_native.c | 12 |
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; } |