From cf5a780e7ec44cdf5b17d606ce661bab1069a4df Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Mon, 14 Apr 2025 12:21:33 +0200 Subject: [PATCH] Fix: memory leak when evaluating closure --- source/blender/nodes/intern/geometry_nodes_closure_zone.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/blender/nodes/intern/geometry_nodes_closure_zone.cc b/source/blender/nodes/intern/geometry_nodes_closure_zone.cc index eb2bdcd41d4..764dd49bcc5 100644 --- a/source/blender/nodes/intern/geometry_nodes_closure_zone.cc +++ b/source/blender/nodes/intern/geometry_nodes_closure_zone.cc @@ -127,6 +127,10 @@ class LazyFunctionForClosureZone : public LazyFunction { void *default_value = closure_allocator.allocate(cpp_type.size(), cpp_type.alignment()); construct_socket_default_value(*bsocket.typeinfo, default_value); default_input_values.append(default_value); + if (!cpp_type.is_trivially_destructible()) { + closure_scope->add_destruct_call( + [&cpp_type, default_value]() { cpp_type.destruct(default_value); }); + } } closure_indices.inputs.main = lf_graph.graph_inputs().index_range().take_back( storage.input_items.items_num);