From 9d319e20cd76d25332d4aefcf92d6f174b910d51 Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Thu, 11 Oct 2018 14:06:10 +0200 Subject: 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 --- src/qml/compiler/qv4codegen.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/qml/compiler') 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(); -- cgit v1.2.3