diff options
author | Manuel Castilla <manzanillawork@gmail.com> | 2021-07-20 13:31:40 +0300 |
---|---|---|
committer | Manuel Castilla <manzanillawork@gmail.com> | 2021-07-20 13:31:40 +0300 |
commit | 75c9788c2753efb75e604d56aea2ed7f3be8b4e4 (patch) | |
tree | 0fc785e1b38839bc6e8c8c52fe2d454d978ae297 /source/blender/compositor | |
parent | d218ba80095bbf36db458fe2636e06c6dda14465 (diff) |
Compositor: Fix crash when connecting multiple constant inputs
Operation receiving inputs was being folded more than once
when it was constant foldable.
Diffstat (limited to 'source/blender/compositor')
-rw-r--r-- | source/blender/compositor/intern/COM_ConstantFolder.cc | 8 |
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 *>(); } |