From 4b4b21c4b8c8feffc709ad58d3af0c9d2ec1a953 Mon Sep 17 00:00:00 2001 From: Thomas McGuire Date: Thu, 30 Aug 2012 11:33:43 +0200 Subject: [V8] QNX: Fix reserving of memory ReserveRegion() did allocate all memory, instead of just reserve it. Use MAP_LAZY to only reserve, but not commit memory. MAP_NORESERVE is not available on QNX. This is now the same mechanism also used in JSC's memory allocator on QNX. Change-Id: I3cbfb26c83d13f69a37874961ad9b98a0b3bb2c7 Reviewed-by: Simon Hausmann --- src/3rdparty/v8/src/platform-qnx.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/3rdparty/v8/src/platform-qnx.cc b/src/3rdparty/v8/src/platform-qnx.cc index cec7dd9..4c36344 100644 --- a/src/3rdparty/v8/src/platform-qnx.cc +++ b/src/3rdparty/v8/src/platform-qnx.cc @@ -488,7 +488,7 @@ VirtualMemory::VirtualMemory(size_t size, size_t alignment) void* reservation = mmap(OS::GetRandomMmapAddr(), request_size, PROT_NONE, - MAP_PRIVATE | MAP_ANONYMOUS, + MAP_PRIVATE | MAP_ANONYMOUS | MAP_LAZY, kMmapFd, kMmapFdOffset); if (reservation == MAP_FAILED) return; @@ -560,7 +560,7 @@ void* VirtualMemory::ReserveRegion(size_t size) { void* result = mmap(OS::GetRandomMmapAddr(), size, PROT_NONE, - MAP_PRIVATE | MAP_ANONYMOUS, + MAP_PRIVATE | MAP_ANONYMOUS | MAP_LAZY, kMmapFd, kMmapFdOffset); @@ -590,7 +590,7 @@ bool VirtualMemory::UncommitRegion(void* base, size_t size) { return mmap(base, size, PROT_NONE, - MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, + MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED | MAP_LAZY, kMmapFd, kMmapFdOffset) != MAP_FAILED; } -- cgit v1.2.3