mirror of
https://github.com/git/git.git
synced 2024-11-30 21:44:02 +08:00
15b7f601fc
Sparse issues two 'Using plain integer as NULL pointer' warnings against the call to the CreateFileMapping() function. The warnings relate to the second and sixth parameters, which both have pointer type. In order to suppress the warnings, we simply pass the NULL pointer, rather than '0', to those parameters in the function call. Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
42 lines
907 B
C
42 lines
907 B
C
#include "../git-compat-util.h"
|
|
|
|
void *git_mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset)
|
|
{
|
|
HANDLE hmap;
|
|
void *temp;
|
|
off_t len;
|
|
struct stat st;
|
|
uint64_t o = offset;
|
|
uint32_t l = o & 0xFFFFFFFF;
|
|
uint32_t h = (o >> 32) & 0xFFFFFFFF;
|
|
|
|
if (!fstat(fd, &st))
|
|
len = st.st_size;
|
|
else
|
|
die("mmap: could not determine filesize");
|
|
|
|
if ((length + offset) > len)
|
|
length = xsize_t(len - offset);
|
|
|
|
if (!(flags & MAP_PRIVATE))
|
|
die("Invalid usage of mmap when built with USE_WIN32_MMAP");
|
|
|
|
hmap = CreateFileMapping((HANDLE)_get_osfhandle(fd), NULL,
|
|
PAGE_WRITECOPY, 0, 0, NULL);
|
|
|
|
if (!hmap)
|
|
return MAP_FAILED;
|
|
|
|
temp = MapViewOfFileEx(hmap, FILE_MAP_COPY, h, l, length, start);
|
|
|
|
if (!CloseHandle(hmap))
|
|
warning("unable to close file mapping handle");
|
|
|
|
return temp ? temp : MAP_FAILED;
|
|
}
|
|
|
|
int git_munmap(void *start, size_t length)
|
|
{
|
|
return !UnmapViewOfFile(start);
|
|
}
|