summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/webkit/JavaScriptCore
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/webkit/JavaScriptCore')
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.cpp3
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Collector.cpp8
2 files changed, 8 insertions, 3 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.cpp b/src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.cpp
index 3af4a29..c538eb1 100644
--- a/src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.cpp
@@ -586,13 +586,14 @@ NEVER_INLINE HandlerInfo* Interpreter::throwException(CallFrame*& callFrame, JSV
unsigned bytecodeOffsetTemp = bytecodeOffset;
CodeBlock *codeBlockTemp = codeBlock;
while (!(handler = codeBlockTemp->handlerForBytecodeOffset(bytecodeOffsetTemp))) {
+ void* returnPC = callFrameTemp->returnPC();
callFrameTemp = callFrameTemp->callerFrame();
if (callFrameTemp->hasHostCallFrameFlag()) {
hasHandler = false;
break;
} else {
codeBlockTemp = callFrameTemp->codeBlock();
- bytecodeOffsetTemp = bytecodeOffsetForPC(callFrameTemp, codeBlockTemp, callFrameTemp->returnPC());
+ bytecodeOffsetTemp = bytecodeOffsetForPC(callFrameTemp, codeBlockTemp, returnPC);
}
}
if (debugger)
diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/Collector.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/Collector.cpp
index 1268d3d..d7fbce8 100644
--- a/src/3rdparty/webkit/JavaScriptCore/runtime/Collector.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/runtime/Collector.cpp
@@ -233,7 +233,9 @@ void Heap::destroy()
template <HeapType heapType>
static NEVER_INLINE CollectorBlock* 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);
@@ -285,7 +287,9 @@ static NEVER_INLINE CollectorBlock* allocateBlock()
static void 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));