[Bf-blender-cvs] [6f0dd4f0f04] master: Fix: memory leak after type conversion in geometry nodes group

Jacques Lucke noreply at git.blender.org
Sun Oct 24 19:26:35 CEST 2021


Commit: 6f0dd4f0f045916c9a4b4fc786a69fd7b7d2d530
Author: Jacques Lucke
Date:   Sun Oct 24 19:26:07 2021 +0200
Branches: master
https://developer.blender.org/rB6f0dd4f0f045916c9a4b4fc786a69fd7b7d2d530

Fix: memory leak after type conversion in geometry nodes group

The leak happened when two things were true:
* Inside of a node group a socket is linked to a Group Input that has
  a different type.
* The corresponding input on the parent Group node is not linked.

The conversion happened correctly, but the original value wasn't
destructed.

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

M	source/blender/modifiers/intern/MOD_nodes_evaluator.cc

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

diff --git a/source/blender/modifiers/intern/MOD_nodes_evaluator.cc b/source/blender/modifiers/intern/MOD_nodes_evaluator.cc
index 69132f6c177..a312872f5d9 100644
--- a/source/blender/modifiers/intern/MOD_nodes_evaluator.cc
+++ b/source/blender/modifiers/intern/MOD_nodes_evaluator.cc
@@ -1455,6 +1455,7 @@ class GeometryNodesEvaluator {
     }
     void *converted_buffer = allocator.allocate(required_type.size(), required_type.alignment());
     this->convert_value(type, required_type, buffer, converted_buffer);
+    type.destruct(buffer);
     return {required_type, converted_buffer};
   }



More information about the Bf-blender-cvs mailing list