aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/buildgraph/transformer.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2017-08-21 10:17:27 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2017-08-21 08:59:21 +0000
commitdda87877ea6351a7b7902bfc2b48d99867a410ab (patch)
tree278589aceb85a9ab35ba933f63adc18ddc3719c3 /src/lib/corelib/buildgraph/transformer.cpp
parent22c93d768b01936a341dea50b85a3a3d7484da72 (diff)
Fix edge case in change tracking
Under certain circumstances, transformers could lose the information about properties requested by their commands. Make sure this doesn't happen anymore. Change-Id: Ib224cd8425760543ae805875024e7886f67825fe Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'src/lib/corelib/buildgraph/transformer.cpp')
-rw-r--r--src/lib/corelib/buildgraph/transformer.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/lib/corelib/buildgraph/transformer.cpp b/src/lib/corelib/buildgraph/transformer.cpp
index 0e5b4a084..b6e02e708 100644
--- a/src/lib/corelib/buildgraph/transformer.cpp
+++ b/src/lib/corelib/buildgraph/transformer.cpp
@@ -260,6 +260,17 @@ void Transformer::createCommands(ScriptEngine *engine, const ScriptFunctionConst
}
}
+void Transformer::rescueChangeTrackingData(const TransformerConstPtr &other)
+{
+ if (!other)
+ return;
+ propertiesRequestedInPrepareScript = other->propertiesRequestedInPrepareScript;
+ propertiesRequestedInCommands = other->propertiesRequestedInCommands;
+ propertiesRequestedFromArtifactInPrepareScript
+ = other->propertiesRequestedFromArtifactInPrepareScript;
+ propertiesRequestedFromArtifactInCommands = other->propertiesRequestedFromArtifactInCommands;
+}
+
void Transformer::load(PersistentPool &pool)
{
pool.load(rule);