From 0b67bba12111bad3bdc7abc83d82e7016efb97ec Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sun, 28 May 2023 09:39:26 +0200 Subject: [DYNAREC] Do not track memory that is not accessible (should save some memory) --- src/custommem.c | 8 +++++++- src/wrapped/wrappedlibc.c | 15 +++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/custommem.c b/src/custommem.c index 8d7925ab..6cb7cedb 100644 --- a/src/custommem.c +++ b/src/custommem.c @@ -1100,7 +1100,13 @@ void setProtection(uintptr_t addr, size_t size, uint32_t prot) void setProtection_mmap(uintptr_t addr, size_t size, uint32_t prot) { - setProtection(addr, size, prot|PROT_MMAP); + if(prot) + setProtection(addr, size, prot|PROT_MMAP); + else { + mutex_lock(&mutex_prot); + addMapMem(addr, addr+size-1); + mutex_unlock(&mutex_prot); + } } void refreshProtection(uintptr_t addr) diff --git a/src/wrapped/wrappedlibc.c b/src/wrapped/wrappedlibc.c index 6052d964..d0792d3c 100755 --- a/src/wrapped/wrappedlibc.c +++ b/src/wrapped/wrappedlibc.c @@ -2595,7 +2595,7 @@ EXPORT void* my_mremap(x64emu_t* emu, void* old_addr, size_t old_size, size_t ne uint32_t prot = getProtection((uintptr_t)old_addr)&~PROT_CUSTOM; if(ret==old_addr) { if(old_size && old_size