summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJocelyn Turcotte <jocelyn.turcotte@nokia.com>2009-10-13 09:34:27 (GMT)
committerJocelyn Turcotte <jocelyn.turcotte@nokia.com>2009-11-04 18:07:24 (GMT)
commitfdb9419f23d1cd2a9ddfc1f7e2fb58f6e845483b (patch)
tree1c55ee79831cbf5dff69b65381ac365eb4886031
parent29afcb69d6023aba012051bd2a026b57b3689732 (diff)
downloadQt-fdb9419f23d1cd2a9ddfc1f7e2fb58f6e845483b.zip
Qt-fdb9419f23d1cd2a9ddfc1f7e2fb58f6e845483b.tar.gz
Qt-fdb9419f23d1cd2a9ddfc1f7e2fb58f6e845483b.tar.bz2
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
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Collector.cpp8
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));