diff options
author | Thomas McGuire <thomas.mcguire.qnx@kdab.com> | 2012-08-30 11:33:43 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-08-31 14:15:48 +0200 |
commit | 3958828af8ee5cc046c664d8d8e483314eac06cb (patch) | |
tree | 045455459ee296c24181bc5d4941c63001528a59 | |
parent | e49f760da4b42c96e9fd927ab8b7a5d0808dc5a3 (diff) | |
download | qtjsbackend-3958828af8ee5cc046c664d8d8e483314eac06cb.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: Ic05c8a017afbd09afb8efebe52f26ca45d11c41a
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Tobias Koenig
Reviewed-by: Kent Hansen <kent.hansen@nokia.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 15d0a8b..bf9f5ba 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; } |