aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/compiler
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@qt.io>2018-10-11 14:06:10 +0200
committerErik Verbruggen <erik.verbruggen@qt.io>2018-11-19 08:56:05 +0000
commit9d319e20cd76d25332d4aefcf92d6f174b910d51 (patch)
tree10bcd5a25aedc34c8a77156549ae6baddfacc790 /src/qml/compiler
parent3e9b752bf4114b2b06e2f8f65aad67606dfc0215 (diff)
JS: Handle check for dangling jump gracefully
The destructor for the Jump object will check if it is linked somewhere. So when doing an early-exit after generating a jump (and before linking it) and after an error occurred, make sure to call link anyway. At this point no code will be generated, so where the jump points to is kinda pointless. Change-Id: I09fa03d4224805a838088acd0c5c83d02b328045 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/qml/compiler')
-rw-r--r--src/qml/compiler/qv4codegen.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/qml/compiler/qv4codegen.cpp b/src/qml/compiler/qv4codegen.cpp
index 75c47164c9..2418e0e7de 100644
--- a/src/qml/compiler/qv4codegen.cpp
+++ b/src/qml/compiler/qv4codegen.cpp
@@ -2077,8 +2077,10 @@ bool Codegen::visit(ConditionalExpression *ast)
iffalse.link();
Reference ko = expression(ast->ko);
- if (hasError)
+ if (hasError) {
+ jump_endif.link(); // dummy link, to prevent assert in Jump destructor from triggering
return false;
+ }
ko.loadInAccumulator();
jump_endif.link();