Commit: 3337838b4990ab92aca7644f36f5f2273ffb4abe
Author: Jacques Lucke
Date: Fri Jan 6 12:54:08 2023 +0100
Branches: master
https://developer.blender.org/rB3337838b4990ab92aca7644f36f5f2273ffb4abe
Fix: retrieved writable attribute but did not write to it
This caused a warning because `attribute.finish` was not called.
===================================================================
M source/blender/blenkernel/intern/geometry_fields.cc
===================================================================
diff --git a/source/blender/blenkernel/intern/geometry_fields.cc
b/source/blender/blenkernel/intern/geometry_fields.cc
index 6fe822d6dc6..9c691cb5870 100644
--- a/source/blender/blenkernel/intern/geometry_fields.cc
+++ b/source/blender/blenkernel/intern/geometry_fields.cc
@@ -433,8 +433,10 @@ bool try_capture_field_on_geometry(GeometryComponent
&component,
GMutableSpan{type, buffer, domain_size});
evaluator.evaluate();
- if (GAttributeWriter attribute = attributes.lookup_for_write(attribute_id)) {
- if (attribute.domain == domain && attribute.varray.type() == type) {
+ const std::optional<AttributeMetaData> meta_data =
attributes.lookup_meta_data(attribute_id);
+
+ if (meta_data && meta_data->domain == domain && meta_data->data_type ==
data_type) {
+ if (GAttributeWriter attribute =
attributes.lookup_for_write(attribute_id)) {
attribute.varray.set_all(buffer);
attribute.finish();
type.destruct_n(buffer, domain_size);
@@ -442,6 +444,7 @@ bool try_capture_field_on_geometry(GeometryComponent
&component,
return true;
}
}
+
attributes.remove(attribute_id);
if (attributes.add(attribute_id, domain, data_type,
bke::AttributeInitMoveArray{buffer})) {
return true;
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-blender-cvs