diff options
author | Jacques Lucke <jacques@blender.org> | 2021-03-02 15:29:01 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2021-03-02 15:29:35 +0300 |
commit | f094b4fa08c970c48ff8f70952ecb3adf353539b (patch) | |
tree | 219ddcdd9cd8df01e1682b94b17b6cedb5f38dcc /source/blender/blenkernel/intern/attribute_access.cc | |
parent | 1e7d8a4ad512236ebc3bfbc31d8e155a574dba07 (diff) |
Fix T86172: check if attribute is actually accessible
The crash happened when the density in the Point Distribute node was
above zero but so small, that no point was generated. In this case, there
was a point cloud component, but the point cloud was empty, making some
attributes unavailable.
One could also make more attributes available in this case, but that can
be done separately if necessary.
Diffstat (limited to 'source/blender/blenkernel/intern/attribute_access.cc')
-rw-r--r-- | source/blender/blenkernel/intern/attribute_access.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/attribute_access.cc b/source/blender/blenkernel/intern/attribute_access.cc index 8974190d0e3..aeb7fba47e8 100644 --- a/source/blender/blenkernel/intern/attribute_access.cc +++ b/source/blender/blenkernel/intern/attribute_access.cc @@ -1886,7 +1886,7 @@ OutputAttributePtr GeometryComponent::attribute_try_get_for_output(const StringR if (!attribute) { this->attribute_try_create(attribute_name, domain, data_type); attribute = this->attribute_try_get_for_write(attribute_name); - if (default_value != nullptr) { + if (attribute && default_value != nullptr) { void *data = attribute->get_span_for_write_only().data(); cpp_type->fill_initialized(default_value, data, attribute->size()); attribute->apply_span(); |