diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2022-10-29 10:16:52 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2022-10-29 10:16:52 +0200 |
| commit | 09103aa52ef63094e2a24e7fb09ba94abbda8dfa (patch) | |
| tree | fd979e12355c331fc2b22d019ad9c2eeb545b28e | |
| parent | ee63a9f368f5e0002dab0ad4247458171b4ae426 (diff) | |
| download | box64-09103aa52ef63094e2a24e7fb09ba94abbda8dfa.tar.gz box64-09103aa52ef63094e2a24e7fb09ba94abbda8dfa.zip | |
[DYNAREC] Fixed a potential issue with free range of dynablock
| -rwxr-xr-x | src/dynarec/dynablock.c | 3 |
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 |