diff options
author | Jacques Lucke <jacques@blender.org> | 2021-10-24 20:26:07 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2021-10-24 20:26:07 +0300 |
commit | 6f0dd4f0f045916c9a4b4fc786a69fd7b7d2d530 (patch) | |
tree | c14c1d6cdf1fe2d1bc5ae04271a8555038dfdbc4 | |
parent | 665657812d5d0ab37e72ec732102dbc9f4d34b90 (diff) |
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.
-rw-r--r-- | source/blender/modifiers/intern/MOD_nodes_evaluator.cc | 1 |
1 files changed, 1 insertions, 0 deletions
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}; } |