[Bf-blender-cvs] [29a41ed6c2f] master: Fix T103747: crash when using rotation output of Curve to Points node
Jacques Lucke
noreply at git.blender.org
Mon Jan 9 14:32:23 CET 2023
Commit: 29a41ed6c2f86248516c3d983f807000685305ef
Author: Jacques Lucke
Date: Mon Jan 9 14:31:36 2023 +0100
Branches: master
https://developer.blender.org/rB29a41ed6c2f86248516c3d983f807000685305ef
Fix T103747: crash when using rotation output of Curve to Points node
===================================================================
M source/blender/nodes/NOD_geometry_exec.hh
M source/blender/nodes/geometry/nodes/node_geo_curve_to_points.cc
===================================================================
diff --git a/source/blender/nodes/NOD_geometry_exec.hh b/source/blender/nodes/NOD_geometry_exec.hh
index 60f58f4c215..ed0ba4105fd 100644
--- a/source/blender/nodes/NOD_geometry_exec.hh
+++ b/source/blender/nodes/NOD_geometry_exec.hh
@@ -283,9 +283,9 @@ class GeoNodeExecParams {
* attribute is not needed.
*/
AutoAnonymousAttributeID get_output_anonymous_attribute_id_if_needed(
- const StringRef output_identifier)
+ const StringRef output_identifier, const bool force_create = false)
{
- if (!this->anonymous_attribute_output_is_required(output_identifier)) {
+ if (!this->anonymous_attribute_output_is_required(output_identifier) && !force_create) {
return {};
}
const GeoNodesLFUserData &user_data = *this->user_data();
diff --git a/source/blender/nodes/geometry/nodes/node_geo_curve_to_points.cc b/source/blender/nodes/geometry/nodes/node_geo_curve_to_points.cc
index 6e443f1efb7..ab7a9bef8db 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_curve_to_points.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_curve_to_points.cc
@@ -111,12 +111,13 @@ static void node_geo_exec(GeoNodeExecParams params)
GeometryComponentEditData::remember_deformed_curve_positions_if_necessary(geometry_set);
- AutoAnonymousAttributeID tangent_anonymous_id =
- params.get_output_anonymous_attribute_id_if_needed("Tangent");
- AutoAnonymousAttributeID normal_anonymous_id =
- params.get_output_anonymous_attribute_id_if_needed("Normal");
AutoAnonymousAttributeID rotation_anonymous_id =
params.get_output_anonymous_attribute_id_if_needed("Rotation");
+ const bool need_tangent_and_normal = bool(rotation_anonymous_id);
+ AutoAnonymousAttributeID tangent_anonymous_id =
+ params.get_output_anonymous_attribute_id_if_needed("Tangent", need_tangent_and_normal);
+ AutoAnonymousAttributeID normal_anonymous_id =
+ params.get_output_anonymous_attribute_id_if_needed("Normal", need_tangent_and_normal);
geometry::ResampleCurvesOutputAttributeIDs resample_attributes;
resample_attributes.tangent_id = tangent_anonymous_id.get();
More information about the Bf-blender-cvs
mailing list