aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/designercore/rewritertransaction.cpp
diff options
context:
space:
mode:
authorThomas Hartmann <Thomas.Hartmann@theqtcompany.com>2016-06-28 13:49:02 +0200
committerThomas Hartmann <Thomas.Hartmann@theqtcompany.com>2016-06-28 13:23:16 +0000
commit2ac7300f0e50d17ed65bc2fd63adc16ae6a209b8 (patch)
tree475c0456ccc7c4a01436462c7a7bf45847161506 /src/plugins/qmldesigner/designercore/rewritertransaction.cpp
parentdc01319cd720be5c980bcc7c3c3cfc4c1b65823a (diff)
QmlDesigner: Fix crash in tests
In the tests we have cases with no rewriter attached. We warn in these cases. Change-Id: Ibc89ff501bf6d48ed3a2f230ee6e1afda5d4d06c Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/qmldesigner/designercore/rewritertransaction.cpp')
-rw-r--r--src/plugins/qmldesigner/designercore/rewritertransaction.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/plugins/qmldesigner/designercore/rewritertransaction.cpp b/src/plugins/qmldesigner/designercore/rewritertransaction.cpp
index 7dbc546377..755b667a06 100644
--- a/src/plugins/qmldesigner/designercore/rewritertransaction.cpp
+++ b/src/plugins/qmldesigner/designercore/rewritertransaction.cpp
@@ -27,6 +27,8 @@
#include <abstractview.h>
#include <rewriterview.h>
+#include <utils/qtcassert.h>
+
#ifndef QMLDESIGNER_TEST
#include <designdocument.h>
#include <qmldesignerplugin.h>
@@ -82,13 +84,22 @@ void RewriterTransaction::commit()
{
if (m_valid) {
m_valid = false;
- bool oldSemanticChecks = view()->rewriterView()->checkSemanticErrors();
- if (m_ignoreSemanticChecks)
- view()->rewriterView()->setCheckSemanticErrors(false);
+
+ RewriterView *rewriterView = view()->rewriterView();
+
+ QTC_ASSERT(rewriterView, qWarning() << Q_FUNC_INFO << "No rewriter attached");
+
+ bool oldSemanticChecks = false;
+ if (rewriterView) {
+ oldSemanticChecks = rewriterView->checkSemanticErrors();
+ if (m_ignoreSemanticChecks)
+ rewriterView->setCheckSemanticErrors(false);
+ }
view()->emitRewriterEndTransaction();
- view()->rewriterView()->setCheckSemanticErrors(oldSemanticChecks);
+ if (rewriterView)
+ view()->rewriterView()->setCheckSemanticErrors(oldSemanticChecks);
if (m_activeIdentifier) {
qDebug() << "Commit RewriterTransaction:" << m_identifier << m_identifierNumber;