diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/qml/qml/qqmldatablob_p.h | 2 | ||||
-rw-r--r-- | src/qml/qml/qqmltypedata.cpp | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/src/qml/qml/qqmldatablob_p.h b/src/qml/qml/qqmldatablob_p.h index da3bbe2c1f..0450e94c02 100644 --- a/src/qml/qml/qqmldatablob_p.h +++ b/src/qml/qml/qqmldatablob_p.h @@ -242,7 +242,9 @@ private: mutable QString m_finalUrlString; // List of QQmlDataBlob's that are waiting for me to complete. +protected: QList<QQmlDataBlob *> m_waitingOnMe; +private: // List of QQmlDataBlob's that I am waiting for to complete. QVector<QQmlRefPointer<QQmlDataBlob>> m_waitingFor; diff --git a/src/qml/qml/qqmltypedata.cpp b/src/qml/qml/qqmltypedata.cpp index 8d75b57fc1..b9fbf40e96 100644 --- a/src/qml/qml/qqmltypedata.cpp +++ b/src/qml/qml/qqmltypedata.cpp @@ -678,7 +678,7 @@ void QQmlTypeData::resolveTypes() if (ref.type.isCompositeSingleton()) { ref.typeData = typeLoader()->getType(ref.type.sourceUrl()); - if (ref.typeData->status() == QQmlDataBlob::ResolvingDependencies) { + if (ref.typeData->status() == QQmlDataBlob::ResolvingDependencies || m_waitingOnMe.contains(ref.typeData.data())) { // TODO: give an error message? If so, we should record and show the path of the cycle. continue; } |