Fix #122883: Crash converting to curves object with no GPv3 drawings
When converting GPv3 object with zero drawings to curves, Blender crashes due to accessing invalid drawing/offset value. With `curve to mesh` node, the evaluated `gemoetry_set` had a dummy GPv3 object data with zero drawings, see `BKE_grease_pencil_data_update`. Hence, the crash in `object_convert_exec` while accessing the offset array. Pull Request: https://projects.blender.org/blender/blender/pulls/123067
This commit is contained in:
committed by
Falk David
parent
cea18e62c5
commit
950f5eef91
@@ -3416,11 +3416,13 @@ static int object_convert_exec(bContext *C, wmOperator *op)
|
||||
curves_id->geometry.wrap() = drawings[i].drawing.strokes();
|
||||
geometries[i] = bke::GeometrySet::from_curves(curves_id);
|
||||
}
|
||||
bke::GeometrySet joined_curves = geometry::join_geometries(geometries, {});
|
||||
if (geometries.size() > 0) {
|
||||
bke::GeometrySet joined_curves = geometry::join_geometries(geometries, {});
|
||||
|
||||
new_curves->geometry.wrap() = joined_curves.get_curves()->geometry.wrap();
|
||||
new_curves->geometry.wrap().tag_topology_changed();
|
||||
BKE_object_material_from_eval_data(bmain, newob, &joined_curves.get_curves()->id);
|
||||
new_curves->geometry.wrap() = joined_curves.get_curves()->geometry.wrap();
|
||||
new_curves->geometry.wrap().tag_topology_changed();
|
||||
BKE_object_material_from_eval_data(bmain, newob, &joined_curves.get_curves()->id);
|
||||
}
|
||||
}
|
||||
|
||||
BKE_object_free_derived_caches(newob);
|
||||
|
||||
Reference in New Issue
Block a user