#endif /* NO_MMAP */
#define DEFAULT_PACKED_GIT_LIMIT \
- (sizeof(void*) >= 8 \
- ? 8 * 1024 * 1024 * 1024 \
- : 256 * 1024 * 1024)
+ ((1024L * 1024L) * (sizeof(void*) >= 8 ? 8192 : 256))
+
+#ifdef NO_PREAD
+#define pread git_pread
+extern ssize_t git_pread(int fd, void *buf, size_t count, off_t offset);
+#endif
#ifdef NO_SETENV
#define setenv gitsetenv
{
void *ret = mmap(start, length, prot, flags, fd, offset);
if (ret == MAP_FAILED) {
+ if (!length)
+ return NULL;
release_pack_memory(length);
ret = mmap(start, length, prot, flags, fd, offset);
if (ret == MAP_FAILED)