Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManuel Castilla <manzanillawork@gmail.com>2021-07-20 13:31:40 +0300
committerManuel Castilla <manzanillawork@gmail.com>2021-07-20 13:31:40 +0300
commit75c9788c2753efb75e604d56aea2ed7f3be8b4e4 (patch)
tree0fc785e1b38839bc6e8c8c52fe2d454d978ae297
parentd218ba80095bbf36db458fe2636e06c6dda14465 (diff)
Compositor: Fix crash when connecting multiple constant inputs
Operation receiving inputs was being folded more than once when it was constant foldable.
-rw-r--r--source/blender/compositor/intern/COM_ConstantFolder.cc8
1 files changed, 4 insertions, 4 deletions
diff --git a/source/blender/compositor/intern/COM_ConstantFolder.cc b/source/blender/compositor/intern/COM_ConstantFolder.cc
index f20324de342..15450572958 100644
--- a/source/blender/compositor/intern/COM_ConstantFolder.cc
+++ b/source/blender/compositor/intern/COM_ConstantFolder.cc
@@ -53,12 +53,12 @@ static bool is_constant_foldable(NodeOperation *operation)
return false;
}
-static Vector<NodeOperation *> find_constant_foldable_operations(Span<NodeOperation *> operations)
+static Set<NodeOperation *> find_constant_foldable_operations(Span<NodeOperation *> operations)
{
- Vector<NodeOperation *> foldable_ops;
+ Set<NodeOperation *> foldable_ops;
for (NodeOperation *op : operations) {
if (is_constant_foldable(op)) {
- foldable_ops.append(op);
+ foldable_ops.add(op);
}
}
return foldable_ops;
@@ -132,7 +132,7 @@ Vector<MemoryBuffer *> ConstantFolder::get_constant_input_buffers(NodeOperation
/** Returns constant operations resulted from folded operations. */
Vector<ConstantOperation *> ConstantFolder::try_fold_operations(Span<NodeOperation *> operations)
{
- Vector<NodeOperation *> foldable_ops = find_constant_foldable_operations(operations);
+ Set<NodeOperation *> foldable_ops = find_constant_foldable_operations(operations);
if (foldable_ops.size() == 0) {
return Vector<ConstantOperation *>();
}