From b3bb5d700ec5367b05cac50b8d5222455441f384 Mon Sep 17 00:00:00 2001 From: Christian Kamm <christian.d.kamm@nokia.com> Date: Fri, 16 Sep 2011 15:32:47 +0200 Subject: [PATCH] QmlJS checks: Don't crash if try has no catch or finally. Change-Id: If7001963bc11f2fa01f058c903ee014f6acb0c04 Reviewed-on: http://codereview.qt-project.org/5102 Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com> --- src/libs/qmljs/qmljscheck.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/libs/qmljs/qmljscheck.cpp b/src/libs/qmljs/qmljscheck.cpp index 927f2bf395a..115295c8342 100644 --- a/src/libs/qmljs/qmljscheck.cpp +++ b/src/libs/qmljs/qmljscheck.cpp @@ -371,8 +371,12 @@ protected: virtual bool visit(TryStatement *ast) { State tryBody = check(ast->statement); - State catchBody = check(ast->catchExpression->statement); - State finallyBody = check(ast->finallyExpression->statement); + State catchBody = ReturnOrThrow; + if (ast->catchExpression) + catchBody = check(ast->catchExpression->statement); + State finallyBody = ReachesEnd; + if (ast->finallyExpression) + finallyBody = check(ast->finallyExpression->statement); _state = qMax(qMin(tryBody, catchBody), finallyBody); return false; -- GitLab