diff --git a/app/node/distort/transform/transformdistortnode.cpp b/app/node/distort/transform/transformdistortnode.cpp index b16f6ffed..c61895514 100644 --- a/app/node/distort/transform/transformdistortnode.cpp +++ b/app/node/distort/transform/transformdistortnode.cpp @@ -335,7 +335,7 @@ void TransformDistortNode::Hash(const QString &output, QCryptographicHash &hash, if (!matrix.isIdentity()) { // Add fingerprint - hash.addData(id().toUtf8()); + HashAddNodeSignature(hash, output); hash.addData(reinterpret_cast(&matrix), sizeof(matrix)); } } diff --git a/app/node/math/merge/merge.cpp b/app/node/math/merge/merge.cpp index 137d710f8..373c7c170 100644 --- a/app/node/math/merge/merge.cpp +++ b/app/node/math/merge/merge.cpp @@ -123,7 +123,7 @@ void MergeNode::Hash(const QString &output, QCryptographicHash &hash, const rati if (!passthrough_base && !passthrough_blend) { // This merge will actually do something so we add a fingerprint - hash.addData(id().toUtf8()); + HashAddNodeSignature(hash, output); } if (!passthrough_base) { diff --git a/app/node/node.cpp b/app/node/node.cpp index 23f022641..3e79ba4b1 100644 --- a/app/node/node.cpp +++ b/app/node/node.cpp @@ -1253,6 +1253,12 @@ bool Node::AreLinked(Node *a, Node *b) return a->links_.contains(b); } +void Node::HashAddNodeSignature(QCryptographicHash &hash, const QString &output) const +{ + hash.addData(id().toUtf8()); + hash.addData(output.toUtf8()); +} + void Node::InsertInput(const QString &id, NodeValue::Type type, const QVariant &default_value, Node::InputFlags flags, int index) { if (id.isEmpty()) { @@ -1446,11 +1452,8 @@ void Node::SetLabel(const QString &s) void Node::Hash(const QString &output, QCryptographicHash &hash, const rational& time, const VideoParams &video_params) const { - Q_UNUSED(output) - // Add this Node's ID and output being used - hash.addData(id().toUtf8()); - hash.addData(output.toUtf8()); + HashAddNodeSignature(hash, output); auto inputs = inputs_for_output(output); foreach (const QString& input, inputs) { diff --git a/app/node/node.h b/app/node/node.h index 5bce23c06..37109178d 100644 --- a/app/node/node.h +++ b/app/node/node.h @@ -852,6 +852,8 @@ protected: }; + void HashAddNodeSignature(QCryptographicHash &hash, const QString &output) const; + void InsertInput(const QString& id, NodeValue::Type type, const QVariant& default_value, InputFlags flags, int index); void PrependInput(const QString& id, NodeValue::Type type, const QVariant& default_value, InputFlags flags = InputFlags(kInputFlagNormal))