aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/lib/api/internaljobs.cpp4
-rw-r--r--src/lib/api/internaljobs.h2
-rw-r--r--src/lib/buildgraph/buildgraph.cpp6
3 files changed, 9 insertions, 3 deletions
diff --git a/src/lib/api/internaljobs.cpp b/src/lib/api/internaljobs.cpp
index e0b0afa0a..7a16ff2ad 100644
--- a/src/lib/api/internaljobs.cpp
+++ b/src/lib/api/internaljobs.cpp
@@ -31,6 +31,7 @@
#include "jobs.h"
#include <buildgraph/artifactcleaner.h>
+#include <buildgraph/buildgraph.h>
#include <buildgraph/buildgraphloader.h>
#include <buildgraph/productbuilddata.h>
#include <buildgraph/projectbuilddata.h>
@@ -132,9 +133,10 @@ void InternalJob::shareObserverWith(InternalJob *otherJob)
m_observer = otherJob->m_observer;
}
-void InternalJob::storeBuildGraph(const TopLevelProjectConstPtr &project)
+void InternalJob::storeBuildGraph(const TopLevelProjectPtr &project)
{
try {
+ doSanityChecks(project, logger());
project->store(logger());
} catch (const ErrorInfo &error) {
logger().printWarning(error);
diff --git a/src/lib/api/internaljobs.h b/src/lib/api/internaljobs.h
index 017013a47..1987e4874 100644
--- a/src/lib/api/internaljobs.h
+++ b/src/lib/api/internaljobs.h
@@ -72,7 +72,7 @@ protected:
JobObserver *observer() const { return m_observer; }
void setError(const ErrorInfo &error) { m_error = error; }
void setTimed(bool timed) { m_timed = timed; }
- void storeBuildGraph(const TopLevelProjectConstPtr &project);
+ void storeBuildGraph(const TopLevelProjectPtr &project);
signals:
void finished(Internal::InternalJob *job);
diff --git a/src/lib/buildgraph/buildgraph.cpp b/src/lib/buildgraph/buildgraph.cpp
index d80aebe84..88db53e20 100644
--- a/src/lib/buildgraph/buildgraph.cpp
+++ b/src/lib/buildgraph/buildgraph.cpp
@@ -436,8 +436,12 @@ static void doSanityChecksForProduct(const ResolvedProductConstPtr &product, con
QBS_CHECK(artifact->product == product);
foreach (const Artifact * const parent, artifact->parents)
QBS_CHECK(parent->children.contains(artifact));
- foreach (const Artifact * const child, artifact->children)
+ foreach (Artifact * const child, artifact->children) {
QBS_CHECK(child->parents.contains(artifact));
+ QBS_CHECK(child->product);
+ QBS_CHECK(child->product->buildData);
+ QBS_CHECK(child->product->buildData->artifacts.contains(child));
+ }
foreach (Artifact * const child, artifact->childrenAddedByScanner)
QBS_CHECK(artifact->children.contains(child));
const TransformerConstPtr transformer = artifact->transformer;