diff options
author | Thomas Hartmann <thomas.hartmann@qt.io> | 2020-05-05 19:48:05 +0200 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@qt.io> | 2020-05-05 18:08:40 +0000 |
commit | b3f3deccb0e4541a4c6d047e67738a6a44ec302d (patch) | |
tree | a01af0e434e32d91d415e3689fa53a5152880e11 | |
parent | cd634594466f122dc7404a57298c2ea9e07412c9 (diff) |
QmlDesigner: Fix crash
Calling m_rewriterView->clearErrorAndWarnings() has side effects
that can call back to the model and meta info system.
As a consequence meta info data based on the old document is created.
This can lead to a crash when the new document is set and
the old document is released.
Change-Id: I47de904914c1daa8d4a76aa1889f90bd86a07af7
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
-rw-r--r-- | src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp index b7426c7a43c..41bc1944ca6 100644 --- a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp +++ b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp @@ -977,9 +977,6 @@ bool TextToModelMerger::load(const QString &data, DifferenceHandler &differenceH if (rewriterBenchmark().isInfoEnabled()) time.start(); - // maybe the project environment (kit, ...) changed, so we need to clean old caches - NodeMetaInfo::clearCache(); - const QUrl url = m_rewriterView->model()->fileUrl(); m_qrcMapping.clear(); @@ -989,6 +986,9 @@ bool TextToModelMerger::load(const QString &data, DifferenceHandler &differenceH setActive(true); m_rewriterView->setIncompleteTypeInformation(false); + // maybe the project environment (kit, ...) changed, so we need to clean old caches + NodeMetaInfo::clearCache(); + try { Snapshot snapshot = m_rewriterView->textModifier()->qmljsSnapshot(); |