diff options
author | Thomas Hartmann <thomas.hartmann@qt.io> | 2019-02-11 13:01:35 +0100 |
---|---|---|
committer | Thomas Hartmann <thomas.hartmann@qt.io> | 2019-02-11 13:41:03 +0000 |
commit | 5f5e2543a5f6971fa1d07c9e84eba9742ba329f8 (patch) | |
tree | ebff22e42b7b59d8a4cd75b78d871b506d11274d /src/plugins | |
parent | b71a6eec20ffca672e6b43f9eea78fd694cc3c7f (diff) | |
download | qt-creator-5f5e2543a5f6971fa1d07c9e84eba9742ba329f8.tar.gz |
QmlDesigner: Do not generate auxiliaryDataAsQML for offset -1
If a node does not have a proper offset, then the data is inconsistent.
Change-Id: I1fbff3e169b225bc4ca00b1deb21982f30281f9a
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/qmldesigner/designercore/model/rewriterview.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp index f4cd9c7e79..2b22844bb9 100644 --- a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp +++ b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp @@ -486,6 +486,8 @@ QString RewriterView::auxiliaryDataAsQML() const QString str = "Designer {\n "; + QTC_ASSERT(!m_canonicalIntModelNode.isEmpty(), return {}); + int columnCount = 0; for (const auto &node : allModelNodes()) { QHash<PropertyName, QVariant> data = node.auxiliaryData(); @@ -727,8 +729,11 @@ void RewriterView::setupCanonicalHashes() const using myPair = std::pair<ModelNode,int>; std::vector<myPair> data; - for (const ModelNode &node : allModelNodes()) - data.emplace_back(std::make_pair(node, nodeOffset(node))); + for (const ModelNode &node : allModelNodes()) { + int offset = nodeOffset(node); + QTC_ASSERT(offset > 0, qDebug() << Q_FUNC_INFO << "no offset" << node; return); + data.emplace_back(std::make_pair(node, offset)); + } std::sort(data.begin(), data.end(), [](myPair a, myPair b) { return a.second < b.second; @@ -1066,6 +1071,8 @@ void RewriterView::restoreAuxiliaryData() setupCanonicalHashes(); + QTC_ASSERT(!m_canonicalIntModelNode.isEmpty(), return); + const QString text = m_textModifier->text(); int startIndex = text.indexOf(annotationsStart()); |