about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rwxr-xr-xsrc/dynarec/dynablock.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/dynarec/dynablock.c b/src/dynarec/dynablock.c
index f1b1b1f1..43222a2e 100755
--- a/src/dynarec/dynablock.c
+++ b/src/dynarec/dynablock.c
@@ -183,6 +183,7 @@ int FreeRangeDynablock(dynablocklist_t* dynablocks, uintptr_t addr, uintptr_t si
         return 1;
 
     if(dynablocks->direct) {
+        int need_lock = my_context?1:0;
         dynablock_t* db;
         int ret;
         khint_t k;
@@ -210,7 +211,7 @@ int FreeRangeDynablock(dynablocklist_t* dynablocks, uintptr_t addr, uintptr_t si
             }
         // purge the list
         kh_foreach_value(blocks, db,
-            FreeDynablock(db, 1);
+            FreeDynablock(db, need_lock);
         );
         kh_destroy(dynablocks, blocks);
         // check emptyness