win32/map.c: Move to new error handling mechanism
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
diff --git a/src/win32/map.c b/src/win32/map.c
index e5f8e55..c7a39fc 100644
--- a/src/win32/map.c
+++ b/src/win32/map.c
@@ -31,7 +31,7 @@ int git__mmap(git_map *out, size_t len, int prot, int flags, int fd, git_off_t o
if ((out == NULL) || (len == 0)) {
errno = EINVAL;
- return GIT_ERROR;
+ return git__throw(GIT_ERROR, "Failed to mmap. No map or zero length");
}
out->data = NULL;
@@ -40,7 +40,7 @@ int git__mmap(git_map *out, size_t len, int prot, int flags, int fd, git_off_t o
if (fh == INVALID_HANDLE_VALUE) {
errno = EBADF;
- return GIT_ERROR;
+ return git__throw(GIT_ERROR, "Failed to mmap. Invalid handle value");
}
if (prot & GIT_PROT_WRITE)
@@ -49,7 +49,7 @@ int git__mmap(git_map *out, size_t len, int prot, int flags, int fd, git_off_t o
fmap_prot |= PAGE_READONLY;
else {
errno = EINVAL;
- return GIT_ERROR;
+ return git__throw(GIT_ERROR, "Failed to mmap. Invalid protection parameters");
}
if (prot & GIT_PROT_WRITE)
@@ -59,7 +59,7 @@ int git__mmap(git_map *out, size_t len, int prot, int flags, int fd, git_off_t o
if (flags & GIT_MAP_FIXED) {
errno = EINVAL;
- return GIT_ERROR;
+ return git__throw(GIT_ERROR, "Failed to mmap. FIXED not set");
}
page_start = (offset / page_size) * page_size;
@@ -67,14 +67,14 @@ int git__mmap(git_map *out, size_t len, int prot, int flags, int fd, git_off_t o
if (page_offset != 0) { /* offset must be multiple of page size */
errno = EINVAL;
- return GIT_ERROR;
+ return git__throw(GIT_ERROR, "Failed to mmap. Offset must be multiple of page size");
}
out->fmh = CreateFileMapping(fh, NULL, fmap_prot, 0, 0, NULL);
if (!out->fmh || out->fmh == INVALID_HANDLE_VALUE) {
/* errno = ? */
out->fmh = NULL;
- return GIT_ERROR;
+ return git__throw(GIT_ERROR, "Failed to mmap. Invalid handle value");
}
assert(sizeof(git_off_t) == 8);
@@ -85,7 +85,7 @@ int git__mmap(git_map *out, size_t len, int prot, int flags, int fd, git_off_t o
/* errno = ? */
CloseHandle(out->fmh);
out->fmh = NULL;
- return GIT_ERROR;
+ return git__throw(GIT_ERROR, "Failed to mmap. No data written");
}
out->len = len;
@@ -97,7 +97,7 @@ int git__munmap(git_map *map)
assert(map != NULL);
if (!map)
- return GIT_ERROR;
+ return git__throw(GIT_ERROR, "Failed to munmap. Map does not exist");
if (map->data) {
if (!UnmapViewOfFile(map->data)) {
@@ -105,7 +105,7 @@ int git__munmap(git_map *map)
CloseHandle(map->fmh);
map->data = NULL;
map->fmh = NULL;
- return GIT_ERROR;
+ return git__throw(GIT_ERROR, "Failed to munmap. Could not unmap view of file");
}
map->data = NULL;
}
@@ -114,7 +114,7 @@ int git__munmap(git_map *map)
if (!CloseHandle(map->fmh)) {
/* errno = ? */
map->fmh = NULL;
- return GIT_ERROR;
+ return git__throw(GIT_ERROR, "Failed to munmap. Could not close handle");
}
map->fmh = NULL;
}