diff options
author | Jocelyn Turcotte <jocelyn.turcotte@nokia.com> | 2009-10-13 09:34:27 (GMT) |
---|---|---|
committer | Jocelyn Turcotte <jocelyn.turcotte@nokia.com> | 2009-11-10 09:30:25 (GMT) |
commit | 4261c163c17cd47a84f4d27bc82a6971c277d478 (patch) | |
tree | 8ed08f97441f627806ca9803f4b37d0bd00f63f0 /src/3rdparty/webkit | |
parent | 5786450e3078c6b24f92859349fcd4231426e62d (diff) | |
download | Qt-4261c163c17cd47a84f4d27bc82a6971c277d478.zip Qt-4261c163c17cd47a84f4d27bc82a6971c277d478.tar.gz Qt-4261c163c17cd47a84f4d27bc82a6971c277d478.tar.bz2 |
Re-apply change fdb9419f23d1cd2a9ddfc1f7e2fb58f6e845483b by Jocelyn Turcotte
Re-apply change 2fbc823bb66db6ef6f6acc74d2baa96ebe1dec81 by Jocelyn Turcotte
Re-apply change 6125aabeccb01a07c706fe4227279eb827e8e890 by Jocelyn Turcotte
Re-apply change 6b8ac349b9a477863a8c8388dcc0658f3284bc54 by Jocelyn Turcotte
Re-applying commit ee0a43fee20cc398b505eb65218ebed56dfc8f39
by Simon Hausmann
Fix crash of QtScript on Mac OS X
When compiling on 10.4 but running on 10.5 the flags passed to vm_map cause
it to crash.
For now fall back to the use of mmap() as allocator instead.
Reviewed-by: Kent Hansen
Diffstat (limited to 'src/3rdparty/webkit')
-rw-r--r-- | src/3rdparty/webkit/JavaScriptCore/runtime/Collector.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/Collector.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/Collector.cpp index b885049..8b647a0 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/Collector.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/Collector.cpp @@ -240,7 +240,9 @@ void Heap::destroy() template <HeapType heapType> NEVER_INLINE CollectorBlock* Heap::allocateBlock() { -#if PLATFORM(DARWIN) + // Disable the use of vm_map for the Qt build on Darwin, because when compiled on 10.4 + // it crashes on 10.5 +#if PLATFORM(DARWIN) && !PLATFORM(QT) vm_address_t address = 0; // FIXME: tag the region as a JavaScriptCore heap when we get a registered VM tag: <rdar://problem/6054788>. vm_map(current_task(), &address, BLOCK_SIZE, BLOCK_OFFSET_MASK, VM_FLAGS_ANYWHERE | VM_TAG_FOR_COLLECTOR_MEMORY, MEMORY_OBJECT_NULL, 0, FALSE, VM_PROT_DEFAULT, VM_PROT_DEFAULT, VM_INHERIT_DEFAULT); @@ -332,7 +334,9 @@ NEVER_INLINE void Heap::freeBlock(size_t block) NEVER_INLINE void Heap::freeBlock(CollectorBlock* block) { -#if PLATFORM(DARWIN) + // Disable the use of vm_deallocate for the Qt build on Darwin, because when compiled on 10.4 + // it crashes on 10.5 +#if PLATFORM(DARWIN) && !PLATFORM(QT) vm_deallocate(current_task(), reinterpret_cast<vm_address_t>(block), BLOCK_SIZE); #elif PLATFORM(SYMBIAN) userChunk->Free(reinterpret_cast<TAny*>(block)); |