[Bf-blender-cvs] [75c9788c275] master: Compositor: Fix crash when connecting multiple constant inputs

Manuel Castilla noreply at git.blender.org
Tue Jul 20 12:44:09 CEST 2021


Commit: 75c9788c2753efb75e604d56aea2ed7f3be8b4e4
Author: Manuel Castilla
Date:   Tue Jul 20 12:31:40 2021 +0200
Branches: master
https://developer.blender.org/rB75c9788c2753efb75e604d56aea2ed7f3be8b4e4

Compositor: Fix crash when connecting multiple constant inputs

Operation receiving inputs was being folded more than once
when it was constant foldable.

===================================================================

M	source/blender/compositor/intern/COM_ConstantFolder.cc

===================================================================

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 *>();
   }



More information about the Bf-blender-cvs mailing list