From 272178d001c877c7fcf509209ff396da2fb9f73c Mon Sep 17 00:00:00 2001 From: YimingWu Date: Mon, 28 Jul 2025 13:38:08 +0200 Subject: [PATCH] Fix #143420: Grease Pencil: Handle empty result in dash modifier The dash modifier creates final result by combining filtered/processed and unfiltered strokes, but this result could be empty. The code assumes valid joined geometry when it's sometimes not the case. This patch did a null check and it worked as it should. Pull Request: https://projects.blender.org/blender/blender/pulls/143424 --- source/blender/modifiers/intern/MOD_grease_pencil_dash.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/source/blender/modifiers/intern/MOD_grease_pencil_dash.cc b/source/blender/modifiers/intern/MOD_grease_pencil_dash.cc index 71148c66665..c32871938e6 100644 --- a/source/blender/modifiers/intern/MOD_grease_pencil_dash.cc +++ b/source/blender/modifiers/intern/MOD_grease_pencil_dash.cc @@ -358,7 +358,12 @@ static void modify_drawing(const GreasePencilDashModifierData &dmd, bke::GeometrySet unselected_geo = bke::GeometrySet::from_curves(unselected_curves_id); bke::GeometrySet joined_geo = geometry::join_geometries({unselected_geo, masked_geo}, {}); - drawing.strokes_for_write() = std::move(joined_geo.get_curves_for_write()->geometry.wrap()); + if (joined_geo.has_curves()) { + drawing.strokes_for_write() = {}; + } + else { + drawing.strokes_for_write() = std::move(joined_geo.get_curves_for_write()->geometry.wrap()); + } drawing.tag_topology_changed(); }