win32: allow heap cache optimization and memory decommit

This commit is contained in:
Kacper Michajłow 2023-08-25 18:37:34 +02:00 committed by sfan5
parent 4f2a12110f
commit 7f7513132f
1 changed files with 19 additions and 0 deletions

View File

@ -9,6 +9,18 @@
#include "osdep/terminal.h"
#include "osdep/main-fn.h"
#ifndef HEAP_OPTIMIZE_RESOURCES_CURRENT_VERSION
#define HEAP_OPTIMIZE_RESOURCES_CURRENT_VERSION 1
enum { HeapOptimizeResources = 3 };
struct HEAP_OPTIMIZE_RESOURCES_INFORMATION {
DWORD Version;
DWORD Flags;
};
#endif
static bool is_valid_handle(HANDLE h)
{
return h != INVALID_HANDLE_VALUE && h != NULL &&
@ -30,6 +42,13 @@ static void microsoft_nonsense(void)
// Enable heap corruption detection
HeapSetInformation(NULL, HeapEnableTerminationOnCorruption, NULL, 0);
// Allow heap cache optimization and memory decommit
struct HEAP_OPTIMIZE_RESOURCES_INFORMATION heap_info = {
.Version = HEAP_OPTIMIZE_RESOURCES_CURRENT_VERSION
};
HeapSetInformation(NULL, HeapOptimizeResources, &heap_info,
sizeof(heap_info));
// Always use safe search paths for DLLs and other files, ie. never use the
// current directory
SetDllDirectoryW(L"");