mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2025-07-20 03:35:46 +00:00
[Android/MEM] MPROTECT OOM handling.
This commit is contained in:
parent
5091759a47
commit
87c9ad32f2
1 changed files with 2 additions and 2 deletions
|
@ -387,10 +387,10 @@ static void* ChooseVirtualBase(size_t virtual_size) {
|
|||
uintptr_t hint_address = ((rng() % range) + lower) * HugePageSize;
|
||||
|
||||
// Try to map.
|
||||
// Note: we may be able to take advantage of MAP_FIXED_NOREPLACE here.
|
||||
// Added MAP_FIXED_NOREPLACE here to stop mprotect eventually (20+ mins) failing with out of memory.
|
||||
void* map_pointer =
|
||||
mmap(reinterpret_cast<void*>(hint_address), virtual_size, PROT_READ | PROT_WRITE,
|
||||
MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE, -1, 0);
|
||||
MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE | MAP_FIXED_NOREPLACE, -1, 0);
|
||||
|
||||
// If we successfully mapped, we're done.
|
||||
if (reinterpret_cast<uintptr_t>(map_pointer) == hint_address) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue