Common: Correctly set ptr to null if mmap fails in memory_util
On POSIX systems mmap will return MAP_FAILED ((void*)-1) instead of a null pointer.
This commit is contained in:
parent
d1c2b76ad1
commit
cc9f352b66
1 changed files with 9 additions and 6 deletions
|
@ -51,14 +51,14 @@ void* AllocateExecutableMemory(size_t size, bool low)
|
||||||
// printf("Mapped executable memory at %p (size %ld)\n", ptr,
|
// printf("Mapped executable memory at %p (size %ld)\n", ptr,
|
||||||
// (unsigned long)size);
|
// (unsigned long)size);
|
||||||
|
|
||||||
#if defined(__FreeBSD__)
|
#ifdef _WIN32
|
||||||
|
if (ptr == nullptr)
|
||||||
|
{
|
||||||
|
#else
|
||||||
if (ptr == MAP_FAILED)
|
if (ptr == MAP_FAILED)
|
||||||
{
|
{
|
||||||
ptr = NULL;
|
ptr = nullptr;
|
||||||
#else
|
#endif
|
||||||
if (ptr == NULL)
|
|
||||||
{
|
|
||||||
#endif
|
|
||||||
PanicAlert("Failed to allocate executable memory");
|
PanicAlert("Failed to allocate executable memory");
|
||||||
}
|
}
|
||||||
#if !defined(_WIN32) && defined(__x86_64__) && !defined(MAP_32BIT)
|
#if !defined(_WIN32) && defined(__x86_64__) && !defined(MAP_32BIT)
|
||||||
|
@ -88,6 +88,9 @@ void* AllocateMemoryPages(size_t size)
|
||||||
#else
|
#else
|
||||||
void* ptr = mmap(0, size, PROT_READ | PROT_WRITE,
|
void* ptr = mmap(0, size, PROT_READ | PROT_WRITE,
|
||||||
MAP_ANON | MAP_PRIVATE, -1, 0);
|
MAP_ANON | MAP_PRIVATE, -1, 0);
|
||||||
|
|
||||||
|
if (ptr == MAP_FAILED)
|
||||||
|
ptr = nullptr;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// printf("Mapped memory at %p (size %ld)\n", ptr,
|
// printf("Mapped memory at %p (size %ld)\n", ptr,
|
||||||
|
|
Loading…
Reference in a new issue