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,7 +50,7 @@
static void mapFile(void *&mappingAddr, int fd, char const *path, size_t) {
mappingAddr = MAP_FAILED;
HANDLE file = CreateFileA(
if (HANDLE file = CreateFileA(
path,
GENERIC_READ,
FILE_SHARE_READ,
@@ -59,15 +59,15 @@ static void mapFile(void *&mappingAddr, int fd, char const *path, size_t) {
FILE_FLAG_POSIX_SEMANTICS | FILE_FLAG_RANDOM_ACCESS,
nullptr
);
HANDLE mappingObj;
if (file == INVALID_HANDLE_VALUE)
return;
mappingObj = CreateFileMappingA(file, nullptr, PAGE_READONLY, 0, 0, nullptr);
if (mappingObj != INVALID_HANDLE_VALUE)
file != INVALID_HANDLE_VALUE) {
if (HANDLE mappingObj = CreateFileMappingA(file, nullptr, PAGE_READONLY, 0, 0, nullptr);
mappingObj != INVALID_HANDLE_VALUE) {
mappingAddr = MapViewOfFile(mappingObj, FILE_MAP_READ, 0, 0, 0);
CloseHandle(mappingObj);
}
CloseHandle(file);
}
}
static int munmap(void *mappingAddr, size_t) {
return UnmapViewOfFile(mappingAddr) == 0 ? -1 : 0;