aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2018-08-10 13:26:53 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2018-08-10 11:30:53 +0000
commitd8c000b6c01787205bd11a475a7b9b0e168451b0 (patch)
tree66e7b219bf0bbda9809d04fa1fdf94d4527fb821
parent349baf79883a96fdd85325a2900997fbf574f9a8 (diff)
Fix potential inconsistency in Artifact data
If safeConnect() returns false, we must not add that "child" to the list of children added by scanners. Change-Id: Icbb1b2d14d99f002e2370ee2bda25daafb0398b2 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
-rw-r--r--src/lib/corelib/buildgraph/executor.cpp4
-rw-r--r--src/lib/corelib/buildgraph/inputartifactscanner.cpp4
2 files changed, 4 insertions, 4 deletions
diff --git a/src/lib/corelib/buildgraph/executor.cpp b/src/lib/corelib/buildgraph/executor.cpp
index e18e9f699..d2c245c8a 100644
--- a/src/lib/corelib/buildgraph/executor.cpp
+++ b/src/lib/corelib/buildgraph/executor.cpp
@@ -872,8 +872,8 @@ void Executor::rescueOldBuildData(Artifact *artifact, bool *childrenAdded = 0)
if (childrenAdded && !childrenToConnect.empty())
*childrenAdded = true;
for (Artifact * const child : childrenToConnect) {
- safeConnect(artifact, child);
- artifact->childrenAddedByScanner << child;
+ if (safeConnect(artifact, child))
+ artifact->childrenAddedByScanner << child;
}
qCDebug(lcBuildGraph) << "Data was rescued.";
} else {
diff --git a/src/lib/corelib/buildgraph/inputartifactscanner.cpp b/src/lib/corelib/buildgraph/inputartifactscanner.cpp
index d183b1879..e96f6fdde 100644
--- a/src/lib/corelib/buildgraph/inputartifactscanner.cpp
+++ b/src/lib/corelib/buildgraph/inputartifactscanner.cpp
@@ -344,8 +344,8 @@ void InputArtifactScanner::handleDependency(ResolvedDependency &dependency)
} else {
if (m_artifact->children.contains(artifactDependency))
return;
- safeConnect(m_artifact, artifactDependency);
- m_artifact->childrenAddedByScanner += artifactDependency;
+ if (safeConnect(m_artifact, artifactDependency))
+ m_artifact->childrenAddedByScanner += artifactDependency;
m_newDependencyAdded = true;
}
}