about summary refs log tree commit diff stats
path: root/src/libtools
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2025-01-15 18:24:54 +0100
committerptitSeb <sebastien.chev@gmail.com>2025-01-15 18:24:54 +0100
commit8432f7d8e212c123169f198bc22df7819892a9e9 (patch)
tree6fd2693838de5acfe531f4b2d232fdb4d2a010b6 /src/libtools
parentec675564c6d27c66a03c7573e893d445677f858e (diff)
downloadbox64-8432f7d8e212c123169f198bc22df7819892a9e9.tar.gz
box64-8432f7d8e212c123169f198bc22df7819892a9e9.zip
[DYNAREC] Introduce BOX64_DYNAREC_DIRTY and some profile to use it
Diffstat (limited to 'src/libtools')
-rw-r--r--src/libtools/signals.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libtools/signals.c b/src/libtools/signals.c
index 46eb4d5a..d6aa7075 100644
--- a/src/libtools/signals.c
+++ b/src/libtools/signals.c
@@ -1622,7 +1622,7 @@ void my_box64signalhandler(int32_t sig, siginfo_t* info, void * ucntx)
         unprotectDB((uintptr_t)addr, 1, 1);    // unprotect 1 byte... But then, the whole page will be unprotected
         if(db) CheckHotPage((uintptr_t)addr);
         int db_need_test = db?getNeedTest((uintptr_t)db->x64_addr):0;
-        if(db && ((addr>=db->x64_addr && addr<(db->x64_addr+db->x64_size)) || db_need_test)) {
+        if(db && ((addr>=db->x64_addr && addr<(db->x64_addr+db->x64_size)) || (db_need_test && !box64_dynarec_dirty))) {
             emu = getEmuSignal(emu, p, db);
             // dynablock got auto-dirty! need to get out of it!!!
             if(emu->jmpbuf) {