[blob] Use MAP_NORESERVE if available (#1039)
MAP_NORESERVE is not available on macOS for example so set the flag to zero if not defined on the headers.
This commit is contained in:
parent
1ce40d900a
commit
65c82179c9
|
@ -495,6 +495,10 @@ hb_blob_t::try_make_writable (void)
|
||||||
# define _O_BINARY 0
|
# define _O_BINARY 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef MAP_NORESERVE
|
||||||
|
# define MAP_NORESERVE 0
|
||||||
|
#endif
|
||||||
|
|
||||||
struct hb_mapped_file_t
|
struct hb_mapped_file_t
|
||||||
{
|
{
|
||||||
char *contents;
|
char *contents;
|
||||||
|
@ -551,7 +555,7 @@ hb_blob_create_from_file (const char *file_name)
|
||||||
file->length = (unsigned long) st.st_size;
|
file->length = (unsigned long) st.st_size;
|
||||||
file->contents = (char *) mmap (nullptr, file->length,
|
file->contents = (char *) mmap (nullptr, file->length,
|
||||||
writable ? PROT_READ|PROT_WRITE : PROT_READ,
|
writable ? PROT_READ|PROT_WRITE : PROT_READ,
|
||||||
MAP_PRIVATE, fd, 0);
|
MAP_PRIVATE | MAP_NORESERVE, fd, 0);
|
||||||
|
|
||||||
if (unlikely (file->contents == MAP_FAILED)) goto fail;
|
if (unlikely (file->contents == MAP_FAILED)) goto fail;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue