[Bf-blender-cvs] [5e3877e0c85] master: Fix T92149: Crash in delete geometry node after curve fill node
Wannes Malfait
noreply at git.blender.org
Tue Oct 12 17:58:58 CEST 2021
Commit: 5e3877e0c8560f27a5cd7b303666b235fb148165
Author: Wannes Malfait
Date: Tue Oct 12 10:58:38 2021 -0500
Branches: master
https://developer.blender.org/rB5e3877e0c8560f27a5cd7b303666b235fb148165
Fix T92149: Crash in delete geometry node after curve fill node
There was only a check for the component but not for if it was empty.
Because the curve fill node produces an empty curve component, a
nullptr was read, causing a crash. Generally nodes shouldn't produce
empty components, but currently we cannot rely on that fact.
Differential Revision: https://developer.blender.org/D12838
===================================================================
M source/blender/nodes/geometry/nodes/node_geo_delete_geometry.cc
===================================================================
diff --git a/source/blender/nodes/geometry/nodes/node_geo_delete_geometry.cc b/source/blender/nodes/geometry/nodes/node_geo_delete_geometry.cc
index e4f6d3d766e..25f0d355c9e 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_delete_geometry.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_delete_geometry.cc
@@ -1156,19 +1156,19 @@ void separate_geometry(GeometrySet &geometry_set,
bool &r_is_error)
{
bool some_valid_domain = false;
- if (geometry_set.has<PointCloudComponent>()) {
+ if (geometry_set.has_pointcloud()) {
if (domain == ATTR_DOMAIN_POINT) {
separate_point_cloud_selection(geometry_set, selection_field, invert);
some_valid_domain = true;
}
}
- if (geometry_set.has<MeshComponent>()) {
+ if (geometry_set.has_mesh()) {
if (domain != ATTR_DOMAIN_CURVE) {
separate_mesh_selection(geometry_set, selection_field, domain, mode, invert);
some_valid_domain = true;
}
}
- if (geometry_set.has<CurveComponent>()) {
+ if (geometry_set.has_curve()) {
if (ELEM(domain, ATTR_DOMAIN_POINT, ATTR_DOMAIN_CURVE)) {
separate_curve_selection(geometry_set, selection_field, domain, invert);
some_valid_domain = true;
More information about the Bf-blender-cvs
mailing list