aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2020-05-05 19:48:05 +0200
committerTim Jenssen <tim.jenssen@qt.io>2020-05-05 18:08:40 +0000
commitb3f3deccb0e4541a4c6d047e67738a6a44ec302d (patch)
treea01af0e434e32d91d415e3689fa53a5152880e11 /src/plugins/qmldesigner
parentcd634594466f122dc7404a57298c2ea9e07412c9 (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>
Diffstat (limited to 'src/plugins/qmldesigner')
-rw-r--r--src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp6
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 b7426c7a43..41bc1944ca 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();