From 2bad18ff33503ec291917894aca1740fb419d7c9 Mon Sep 17 00:00:00 2001 From: Jaeyoon Jung Date: Thu, 8 Feb 2018 14:24:20 +0900 Subject: Warn circular dependency when loading types Detect a circular dependency between two QML types and print a warning message if found. Task-number: QTBUG-83354 Change-Id: I826b28775ba3212ccccaeb56d50b64fec6f38ea9 Reviewed-by: Ulf Hermann (cherry picked from commit f0c08dc2175cffadb73e06d2cc69a152002e0df0) --- src/qml/qml/qqmldatablob.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src') diff --git a/src/qml/qml/qqmldatablob.cpp b/src/qml/qml/qqmldatablob.cpp index b22e46b69c..82e6fcf56c 100644 --- a/src/qml/qml/qqmldatablob.cpp +++ b/src/qml/qml/qqmldatablob.cpp @@ -359,6 +359,12 @@ void QQmlDataBlob::addDependency(QQmlDataBlob *blob) m_waitingFor.append(blob); blob->m_waitingOnMe.append(this); + + // Check circular dependency + if (m_waitingOnMe.indexOf(blob) >= 0) { + qWarning() << "Cyclic dependency detected between" << this->url().toString() << "and" << blob->url().toString(); + m_data.setStatus(Error); + } } /*! -- cgit v1.2.3