diff options
author | Junio C Hamano <junkio@cox.net> | 2007-02-15 00:20:41 +0300 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-02-15 00:20:41 +0300 |
commit | 5faaf24634a4d3a630bd3655cc85fa96f8bc1903 (patch) | |
tree | e7efe165e0da77d5dc25a1c4867f7cb11572d6c1 | |
parent | bd07326dcd46196c14be81c68800ce2d1f4144c4 (diff) |
Make sure packedgitwindowsize is multiple of (pagesize * 2)
The next patch depends on this.
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r-- | config.c | 12 | ||||
-rw-r--r-- | git-compat-util.h | 3 |
2 files changed, 10 insertions, 5 deletions
@@ -310,12 +310,14 @@ int git_default_config(const char *var, const char *value) } if (!strcmp(var, "core.packedgitwindowsize")) { - int pgsz = getpagesize(); + int pgsz_x2 = getpagesize() * 2; packed_git_window_size = git_config_int(var, value); - packed_git_window_size /= pgsz; - if (packed_git_window_size < 2) - packed_git_window_size = 2; - packed_git_window_size *= pgsz; + + /* This value must be multiple of (pagesize * 2) */ + packed_git_window_size /= pgsz_x2; + if (packed_git_window_size < 1) + packed_git_window_size = 1; + packed_git_window_size *= pgsz_x2; return 0; } diff --git a/git-compat-util.h b/git-compat-util.h index c1bcb001a5..105ac28f97 100644 --- a/git-compat-util.h +++ b/git-compat-util.h @@ -96,11 +96,14 @@ extern void set_warn_routine(void (*routine)(const char *warn, va_list params)); extern void *git_mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset); extern int git_munmap(void *start, size_t length); +/* This value must be multiple of (pagesize * 2) */ #define DEFAULT_PACKED_GIT_WINDOW_SIZE (1 * 1024 * 1024) #else /* NO_MMAP */ #include <sys/mman.h> + +/* This value must be multiple of (pagesize * 2) */ #define DEFAULT_PACKED_GIT_WINDOW_SIZE \ (sizeof(void*) >= 8 \ ? 1 * 1024 * 1024 * 1024 \ |