diff options
author | Thomas McGuire <thomas.mcguire.qnx@kdab.com> | 2012-08-30 11:33:43 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-01-09 13:07:20 +0100 |
commit | 4b4b21c4b8c8feffc709ad58d3af0c9d2ec1a953 (patch) | |
tree | 148b8d83621fc5973471290a22c7867aa953e64f | |
parent | ccada9b87d7236355fd804628be9e250e1782306 (diff) | |
download | qtjsbackend-4b4b21c4b8c8feffc709ad58d3af0c9d2ec1a953.tar.gz |
[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 <simon.hausmann@digia.com>
-rw-r--r-- | src/3rdparty/v8/src/platform-qnx.cc | 6 |
1 files 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; } |