From 6f0dd4f0f045916c9a4b4fc786a69fd7b7d2d530 Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Sun, 24 Oct 2021 19:26:07 +0200 Subject: 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. --- source/blender/modifiers/intern/MOD_nodes_evaluator.cc | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender') 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}; } -- cgit v1.2.3