From ccae00c9e239a70ff8cbac048520c815934ff8ca Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Mon, 5 Dec 2022 15:34:54 +0100 Subject: [PATCH] Fix: memory leak in curve circle primitive node --- .../nodes/node_geo_curve_primitive_circle.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/blender/nodes/geometry/nodes/node_geo_curve_primitive_circle.cc b/source/blender/nodes/geometry/nodes/node_geo_curve_primitive_circle.cc index 75f2116b237..7eff4923138 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_curve_primitive_circle.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_curve_primitive_circle.cc @@ -109,12 +109,6 @@ static Curves *create_point_circle_curve( return nullptr; } - Curves *curves_id = bke::curves_new_nomain_single(resolution, CURVE_TYPE_POLY); - bke::CurvesGeometry &curves = bke::CurvesGeometry::wrap(curves_id->geometry); - curves.cyclic_for_write().first() = true; - - MutableSpan positions = curves.positions_for_write(); - float3 center; /* Midpoints of `P1->P2` and `P2->P3`. */ const float3 q1 = math::interpolate(p1, p2, 0.5f); @@ -142,6 +136,12 @@ static Curves *create_point_circle_curve( return nullptr; } + Curves *curves_id = bke::curves_new_nomain_single(resolution, CURVE_TYPE_POLY); + bke::CurvesGeometry &curves = bke::CurvesGeometry::wrap(curves_id->geometry); + curves.cyclic_for_write().first() = true; + + MutableSpan positions = curves.positions_for_write(); + /* Get the radius from the center-point to p1. */ const float r = math::distance(p1, center); const float theta_step = ((2 * M_PI) / float(resolution));