summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/webkit
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2009-09-09 08:37:57 (GMT)
committerSimon Hausmann <simon.hausmann@nokia.com>2009-09-09 08:43:19 (GMT)
commitbb6aee6989aadfa1bcf4b36f302540440b3acc93 (patch)
tree41577d058d095210d9cd29052f38f640d4b963b2 /src/3rdparty/webkit
parent2cb0292aaa2aa60dbfdcc0391753774bf3823151 (diff)
downloadQt-bb6aee6989aadfa1bcf4b36f302540440b3acc93.zip
Qt-bb6aee6989aadfa1bcf4b36f302540440b3acc93.tar.gz
Qt-bb6aee6989aadfa1bcf4b36f302540440b3acc93.tar.bz2
Fix crash in QtScript with exceptions.
When trying to determine if there is a handler for an exception, determine the returnPC for the call frame traversal frmo the corrent CallFrame object. Reviewed-by: Kent Hansen
Diffstat (limited to 'src/3rdparty/webkit')
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.cpp3
1 files changed, 2 insertions, 1 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)