Refactor mapFile for Windows

This commit is contained in:
Rangi42
2024-03-09 19:22:06 -05:00
parent cce7f51235
commit ba104baf3e

View File

@@ -50,23 +50,23 @@
static void mapFile(void *&mappingAddr, int fd, char const *path, size_t) { static void mapFile(void *&mappingAddr, int fd, char const *path, size_t) {
mappingAddr = MAP_FAILED; mappingAddr = MAP_FAILED;
HANDLE file = CreateFileA( if (HANDLE file = CreateFileA(
path, path,
GENERIC_READ, GENERIC_READ,
FILE_SHARE_READ, FILE_SHARE_READ,
nullptr, nullptr,
OPEN_EXISTING, OPEN_EXISTING,
FILE_FLAG_POSIX_SEMANTICS | FILE_FLAG_RANDOM_ACCESS, FILE_FLAG_POSIX_SEMANTICS | FILE_FLAG_RANDOM_ACCESS,
nullptr nullptr
); );
HANDLE mappingObj; file != INVALID_HANDLE_VALUE) {
if (file == INVALID_HANDLE_VALUE) if (HANDLE mappingObj = CreateFileMappingA(file, nullptr, PAGE_READONLY, 0, 0, nullptr);
return; mappingObj != INVALID_HANDLE_VALUE) {
mappingObj = CreateFileMappingA(file, nullptr, PAGE_READONLY, 0, 0, nullptr); mappingAddr = MapViewOfFile(mappingObj, FILE_MAP_READ, 0, 0, 0);
if (mappingObj != INVALID_HANDLE_VALUE) CloseHandle(mappingObj);
mappingAddr = MapViewOfFile(mappingObj, FILE_MAP_READ, 0, 0, 0); }
CloseHandle(mappingObj); CloseHandle(file);
CloseHandle(file); }
} }
static int munmap(void *mappingAddr, size_t) { static int munmap(void *mappingAddr, size_t) {