diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-05-10 16:23:46 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-05-10 16:24:01 +0200 |
| commit | 92dd53177f0119c0638c057ea7da5204046846d0 (patch) | |
| tree | 1df6ea01d55f4f7008cd7b972260fd4b22518250 /src/dynarec/dynablock.c | |
| parent | fe9e5bf21db4acca9b567f7ea36b084837ae7648 (diff) | |
| download | box64-92dd53177f0119c0638c057ea7da5204046846d0.tar.gz box64-92dd53177f0119c0638c057ea7da5204046846d0.zip | |
Improved custom memory allocator
Diffstat (limited to 'src/dynarec/dynablock.c')
| -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 758e7c30..c0053a1b 100755 --- a/src/dynarec/dynablock.c +++ b/src/dynarec/dynablock.c @@ -212,6 +212,7 @@ static dynablock_t* internalDBGetBlock(x64emu_t* emu, uintptr_t addr, uintptr_t block->x64_addr = (void*)addr; if(sigsetjmp(&dynarec_jmpbuf, 1)) { printf_log(LOG_INFO, "FillBlock at %p triggered a segfault, cancelling\n", (void*)addr); + FreeDynablock(block, 0); if(need_lock) mutex_unlock(&my_context->mutex_dyndump); return NULL; @@ -223,7 +224,7 @@ static dynablock_t* internalDBGetBlock(x64emu_t* emu, uintptr_t addr, uintptr_t block = NULL; } // check size - if(block && (block->x64_size || (!block->x64_size && !block->done))) { + if(block) { int blocksz = block->x64_size; if(blocksz>my_context->max_db_size) my_context->max_db_size = blocksz; |