diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-03-28 14:31:11 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-03-28 14:31:11 +0200 |
| commit | dfe62ceac8a7c8067490b58995ad68cbe296fc24 (patch) | |
| tree | 37292e5d7808978466390cd5a4038c3fb6c860ce /src/emu | |
| parent | a36c9bfe73debeac10b87800020f23cb0d31da09 (diff) | |
| download | box64-dfe62ceac8a7c8067490b58995ad68cbe296fc24.tar.gz box64-dfe62ceac8a7c8067490b58995ad68cbe296fc24.zip | |
Better Stack handling (backported from box86)
Diffstat (limited to 'src/emu')
| -rwxr-xr-x | src/emu/x64emu.c | 5 | ||||
| -rwxr-xr-x | src/emu/x64run.c | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/src/emu/x64emu.c b/src/emu/x64emu.c index f92a81bd..9a162dea 100755 --- a/src/emu/x64emu.c +++ b/src/emu/x64emu.c @@ -5,6 +5,7 @@ #include <unistd.h> #include <sys/syscall.h> #include <sys/time.h> +#include <sys/mman.h> #include "debug.h" #include "box64stack.h" @@ -173,8 +174,8 @@ void CallAllCleanup(x64emu_t *emu) static void internalFreeX64(x64emu_t* emu) { - if(emu) - free(emu->stack2free); + if(emu && emu->stack2free) + munmap(emu->stack2free, emu->size_stack); } EXPORTDYN diff --git a/src/emu/x64run.c b/src/emu/x64run.c index e894fa87..237f7de1 100755 --- a/src/emu/x64run.c +++ b/src/emu/x64run.c @@ -48,7 +48,7 @@ int Run(x64emu_t *emu, int step) return 0; //ref opcode: http://ref.x64asm.net/geek32.html#xA1 - printf_log(LOG_DEBUG, "Run X86 (%p), RIP=%p, Stack=%p\n", emu, (void*)R_RIP, emu->context->stack); + printf_log(LOG_DEBUG, "Run X86 (%p), RIP=%p, Stack=%p\n", emu, (void*)R_RIP, (void*)R_RSP); x64emurun: |