aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@qt.io>2016-12-01 15:40:16 +0100
committerJani Heikkinen <jani.heikkinen@qt.io>2016-12-02 07:28:27 +0000
commita63e6ea1ccae744ed40d00aac97c4ce46e7ac6d4 (patch)
tree412fa5ee8a9f885432e4eb65e718476c91eb8ef1
parent6ed23b91b949b7edaf96cdb0f2bba7b21a02de89 (diff)
Fix build of QtQuick compiler generated code with popScope()
After commit 5e6bf607ee1e466eebabb7b8114c9f5e8fc40a9e we would not have an exception check template matching anymore that sets NeedsCheck to false, and consequently generated code that would try to call popScope() with an ExecutionEngine instead of a NoThrowEngine. Task-number: QTRD-2219 Change-Id: Iddf8218d1efb9af77c9a5f7ef84b9998fb167ef5 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
-rw-r--r--src/qml/jsruntime/qv4runtimeapi_p.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/qml/jsruntime/qv4runtimeapi_p.h b/src/qml/jsruntime/qv4runtimeapi_p.h
index e06a3f5ec2..355b7890b6 100644
--- a/src/qml/jsruntime/qv4runtimeapi_p.h
+++ b/src/qml/jsruntime/qv4runtimeapi_p.h
@@ -63,6 +63,11 @@ template <typename T>
struct ExceptionCheck {
enum { NeedsCheck = 1 };
};
+// push_catch and pop context methods shouldn't check for exceptions
+template <>
+struct ExceptionCheck<void (*)(QV4::NoThrowEngine *)> {
+ enum { NeedsCheck = 0 };
+};
template <typename A>
struct ExceptionCheck<void (*)(A, QV4::NoThrowEngine)> {
enum { NeedsCheck = 0 };