mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-20 18:22:07 +00:00
Refactor mapFile for Windows
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user