summaryrefslogtreecommitdiff
path: root/src/lib/buildgraph/rulesapplicator.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@digia.com>2013-10-14 18:29:39 +0200
committerJoerg Bornemann <joerg.bornemann@digia.com>2013-10-15 15:37:48 +0200
commit2c1a305295f05f35527b0cceb500d013e12752e0 (patch)
tree561b4e38cb27a19e91b29bf576659f30dfdd9eb8 /src/lib/buildgraph/rulesapplicator.cpp
parent96c6199f74d4e60cb568426edd07fc7596d802c6 (diff)
downloadqbs-2c1a305295f05f35527b0cceb500d013e12752e0.tar.gz
Prevent sibling artifacts from getting different transformers.
It is a strict requirement that all output artifacts in a rule point to the same Transformer object. This invariant can currently break under very specific circumstances related to build graph change tracking, which is likely the cause of QBS-379. Task-number: QBS-379 Change-Id: I85dc28e69794df5f50c5155171b393ab14ca6dbc Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'src/lib/buildgraph/rulesapplicator.cpp')
-rw-r--r--src/lib/buildgraph/rulesapplicator.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lib/buildgraph/rulesapplicator.cpp b/src/lib/buildgraph/rulesapplicator.cpp
index 70de2bc17..0e3e95374 100644
--- a/src/lib/buildgraph/rulesapplicator.cpp
+++ b/src/lib/buildgraph/rulesapplicator.cpp
@@ -240,6 +240,8 @@ Artifact *RulesApplicator::createOutputArtifact(const RuleArtifactConstPtr &rule
Artifact *outputArtifact = lookupArtifact(m_product, outputPath);
if (outputArtifact) {
if (outputArtifact->transformer && outputArtifact->transformer != m_transformer) {
+ QBS_CHECK(!m_transformer);
+
// This can happen when applying rules after scanning for additional file tags.
// We just regenerate the transformer.
if (m_logger.traceEnabled()) {