diff options
| -rw-r--r-- | src/lib/buildgraph/projectbuilddata.cpp | 5 | ||||
| -rw-r--r-- | src/lib/buildgraph/rulesapplicator.cpp | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/lib/buildgraph/projectbuilddata.cpp b/src/lib/buildgraph/projectbuilddata.cpp index 1ad45c13a..bec6585bc 100644 --- a/src/lib/buildgraph/projectbuilddata.cpp +++ b/src/lib/buildgraph/projectbuilddata.cpp @@ -183,7 +183,10 @@ void ProjectBuildData::updateNodeThatMustGetNewTransformer(Artifact *artifact, c const RuleConstPtr rule = artifact->transformer->rule; isDirty = true; - artifact->transformer = TransformerPtr(); + + QBS_CHECK(artifact->transformer); + foreach (Artifact * const sibling, artifact->transformer->outputs) + sibling->transformer.clear(); ArtifactsPerFileTagMap artifactsPerFileTag; foreach (Artifact *input, artifact->children) { 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()) { |
