ntdll: Don't free reserved memory on 64-bit macOS.

It's part of the zerofill section.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55674
This commit is contained in:
Alexandre Julliard 2023-09-29 18:41:29 +02:00
parent 4e55945467
commit d92d9bc2a9

View file

@ -4161,15 +4161,20 @@ static void virtual_release_address_space(void)
*/ */
void virtual_set_large_address_space(void) void virtual_set_large_address_space(void)
{ {
#ifdef _WIN64 if (is_win64)
if (is_wow64()) {
user_space_wow_limit = ((main_image_info.ImageCharacteristics & IMAGE_FILE_LARGE_ADDRESS_AWARE) ? limit_4g : limit_2g) - 1; if (is_wow64())
else user_space_wow_limit = ((main_image_info.ImageCharacteristics & IMAGE_FILE_LARGE_ADDRESS_AWARE) ? limit_4g : limit_2g) - 1;
free_reserved_memory( 0, (char *)0x7ffe0000 ); #ifndef __APPLE__ /* don't free the zerofill section on macOS */
#else else
if (!(main_image_info.ImageCharacteristics & IMAGE_FILE_LARGE_ADDRESS_AWARE)) return; free_reserved_memory( 0, (char *)0x7ffe0000 );
free_reserved_memory( (char *)0x80000000, address_space_limit );
#endif #endif
}
else
{
if (!(main_image_info.ImageCharacteristics & IMAGE_FILE_LARGE_ADDRESS_AWARE)) return;
free_reserved_memory( (char *)0x80000000, address_space_limit );
}
user_space_limit = working_set_limit = address_space_limit; user_space_limit = working_set_limit = address_space_limit;
} }