From e10ac17fdbefa3544fe7ab4cdcdd0390d4d443ae Mon Sep 17 00:00:00 2001 From: Hans Goudey Date: Mon, 13 Nov 2023 12:45:28 +0100 Subject: [PATCH] Fix #114737: Curves: Random selection crash in curve select mode Inverting an index mask needs to use the correct "full" index range. Pull Request: https://projects.blender.org/blender/blender/pulls/114785 --- source/blender/editors/curves/intern/curves_ops.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/blender/editors/curves/intern/curves_ops.cc b/source/blender/editors/curves/intern/curves_ops.cc index 75bb9680886..b04a45c000b 100644 --- a/source/blender/editors/curves/intern/curves_ops.cc +++ b/source/blender/editors/curves/intern/curves_ops.cc @@ -905,11 +905,12 @@ static int select_random_exec(bContext *C, wmOperator *op) for (Curves *curves_id : unique_curves) { CurvesGeometry &curves = curves_id->geometry.wrap(); const eAttrDomain selection_domain = eAttrDomain(curves_id->selection_domain); + const int domain_size = curves.attributes().domain_size(selection_domain); IndexMaskMemory memory; const IndexMask inv_random_elements = random_mask( curves, selection_domain, seed, probability, memory) - .complement(curves.points_range(), memory); + .complement(IndexRange(domain_size), memory); const bool was_anything_selected = has_anything_selected(curves); bke::GSpanAttributeWriter selection = ensure_selection_attribute(