diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2013-10-01 16:19:28 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-10-03 09:24:41 +0200 |
commit | 7d9780b6308e15dcd4adcb65d7b516666c285f54 (patch) | |
tree | 94c598d4aba187293dace67011dbcaf8347ef8b7 /src/qml/jsruntime/qv4context.cpp | |
parent | 8abf7f5876a48c0879bce628597533c7b6eca9a0 (diff) |
Cleanup exception handling
The code in the Exception class operates entirely on the engine's data,
so move it into ExecutionEngine instead. This eliminates the need for
a QV4::Exception class and catches and old code that tries to still do
catch (Exception &) instead of catch (...)
Change-Id: Ie608bec6af652038aca6c9423c225a4d7eb13b39
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/qml/jsruntime/qv4context.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4context.cpp | 21 |
1 files changed, 3 insertions, 18 deletions
diff --git a/src/qml/jsruntime/qv4context.cpp b/src/qml/jsruntime/qv4context.cpp index 4bba0bfbd1..be6e1649cf 100644 --- a/src/qml/jsruntime/qv4context.cpp +++ b/src/qml/jsruntime/qv4context.cpp @@ -48,7 +48,6 @@ #include <qv4argumentsobject_p.h> #include "qv4function_p.h" #include "qv4errorobject_p.h" -#include "qv4exception_p.h" using namespace QV4; @@ -598,7 +597,7 @@ ReturnedValue ExecutionContext::getPropertyAndBase(const StringRef name, ObjectR void ExecutionContext::throwError(const ValueRef value) { - Exception::throwException(this, value); + engine->throwException(value); } void ExecutionContext::throwError(const QString &message) @@ -647,26 +646,12 @@ void ExecutionContext::throwUnimplemented(const QString &message) ReturnedValue ExecutionContext::catchException(StackTrace *trace) { - if (!engine->hasException) - Exception::rethrow(); - while (engine->current != this) - engine->popContext(); - if (trace) - *trace = engine->exceptionStackTrace; - engine->exceptionStackTrace.clear(); - engine->hasException = false; - ReturnedValue res = engine->exceptionValue.asReturnedValue(); - engine->exceptionValue = Encode::undefined(); - return res; + return engine->catchException(this, trace); } void ExecutionContext::rethrowException() { - if (engine->hasException) { - while (engine->current != this) - engine->popContext(); - } - Exception::rethrow(); + engine->rethrowException(this); } void ExecutionContext::throwReferenceError(const ValueRef value) |