summaryrefslogtreecommitdiff
path: root/src/unix
diff options
context:
space:
mode:
authorAlbert Meltzer <kitbellew@users.noreply.github.com>2014-05-18 07:54:41 -0700
committerAlbert Meltzer <kitbellew@users.noreply.github.com>2014-05-19 17:37:29 -0700
commit62e562f92b45b6a9b124452f7de6b9e86a179224 (patch)
tree96562679577257795f9ab425faae8b953bf0c051 /src/unix
parent588a43af543f9a00345a6e464a61c51aebad88da (diff)
downloadlibgit2-62e562f92b45b6a9b124452f7de6b9e86a179224.tar.gz
Fix compiler warning (git_off_t cast to size_t).
Use size_t for page size, instead of long. Check result of sysconf. Use size_t for page offset so no cast to size_t (second arg to p_mmap). Use mod instead div/mult pair, so no cast to size_t is necessary.
Diffstat (limited to 'src/unix')
-rw-r--r--src/unix/map.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/unix/map.c b/src/unix/map.c
index 3d0cbbaf8..0a235d5a1 100644
--- a/src/unix/map.c
+++ b/src/unix/map.c
@@ -13,9 +13,15 @@
#include <unistd.h>
#include <errno.h>
-long git__page_size(void)
+int git__page_size(size_t *page_size)
{
- return sysconf(_SC_PAGE_SIZE);
+ long sc_page_size = sysconf(_SC_PAGE_SIZE);
+ if (sc_page_size < 0) {
+ giterr_set_str(GITERR_OS, "Can't determine system page size");
+ return -1;
+ }
+ *page_size = (size_t) sc_page_size;
+ return 0;
}
int p_mmap(git_map *out, size_t len, int prot, int flags, int fd, git_off_t offset)