diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2025-06-20 12:10:36 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2025-06-20 12:10:36 +0200 |
| commit | dcb47b7df841ed82048aeac8ae079342119402c9 (patch) | |
| tree | 034c12f9857958bedb5c1f1993c511a6abdf434b /src/tools/env.c | |
| parent | d6c08a7511ac3ca27c719d91e58ab8b9e5f6a688 (diff) | |
| download | box64-dcb47b7df841ed82048aeac8ae079342119402c9.tar.gz box64-dcb47b7df841ed82048aeac8ae079342119402c9.zip | |
[DYNACACHE] Introduced B64X_DYNACACHE=2 to use cache but not create new ones, and made it default
Diffstat (limited to 'src/tools/env.c')
| -rw-r--r-- | src/tools/env.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/tools/env.c b/src/tools/env.c index 70091eb3..6727d830 100644 --- a/src/tools/env.c +++ b/src/tools/env.c @@ -920,9 +920,9 @@ void SerializeMmaplist(mapping_t* mapping) { if(!DYNAREC_VERSION) return; - if(!box64env.dynacache) + if(mapping->env && mapping->env->is_dynacache_overridden && (mapping->env->dynacache!=1)) return; - if(mapping->env && mapping->env->is_dynacache_overridden && !mapping->env->dynacache) + if((!mapping->env || !mapping->env->is_dynacache_overridden) && box64env.dynacache!=1) return; const char* folder = GetDynacacheFolder(mapping); if(!folder) return; // no folder, no serialize... @@ -1236,10 +1236,7 @@ void MmapDynaCache(mapping_t* mapping) { if(!DYNAREC_VERSION) return; - if(!box64env.dynacache) - return; - if(mapping->env && mapping->env->is_dynacache_overridden && !mapping->env->dynacache) - return; + // no need to test dynacache enabled or not, it has already been done before this call const char* folder = GetDynacacheFolder(mapping); if(!folder) return; const char* name = GetMmaplistName(mapping); @@ -1373,7 +1370,7 @@ int IsAddrNeedReloc(uintptr_t addr) box64env_t* env = GetCurEnvByAddr(addr); // TODO: this seems quite wrong and should be refactored int test = env->is_dynacache_overridden?env->dynacache:box64env.dynacache; - if(!test) + if(test!=1) return 0; uintptr_t end = env->nodynarec_end?env->nodynarec_end:box64env.nodynarec_end; uintptr_t start = env->nodynarec_start?env->nodynarec_start:box64env.nodynarec_start; |