[Bf-blender-cvs] [a50ca6a1cd7] blender-v3.3-release: Fix T100687: Geometry Attribute Convert crashes in sculpt mode
Philipp Oeser
noreply at git.blender.org
Sat Sep 3 11:42:21 CEST 2022
Commit: a50ca6a1cd72aa0556d74dd4a54de25bf2eeadcb
Author: Philipp Oeser
Date: Thu Sep 1 13:55:20 2022 +0200
Branches: blender-v3.3-release
https://developer.blender.org/rBa50ca6a1cd72aa0556d74dd4a54de25bf2eeadcb
Fix T100687: Geometry Attribute Convert crashes in sculpt mode
Since above commit, `BKE_id_attributes_active_get` would also return
"internal" attributes like ".hide_poly" or ".hide_vert".
As a consequence, a couple of poll functions dont return false anymore
(attribute remove, attribute convert), allowing these operators to
execute, but acting on this "internal" layers is just asking for
trouble.
In the UI, we dont see these attributes, because `MESH_UL_attributes`
checks `is_internal`, same thing we do now in
`BKE_id_attributes_active_get`.
Maniphest Tasks: T100687
Differential Revision: https://developer.blender.org/D15833
===================================================================
M source/blender/blenkernel/intern/attribute.cc
===================================================================
diff --git a/source/blender/blenkernel/intern/attribute.cc b/source/blender/blenkernel/intern/attribute.cc
index 495a2c82332..e9593b49047 100644
--- a/source/blender/blenkernel/intern/attribute.cc
+++ b/source/blender/blenkernel/intern/attribute.cc
@@ -473,7 +473,7 @@ CustomDataLayer *BKE_id_attributes_active_get(ID *id)
for (int i = 0; i < customdata->totlayer; i++) {
CustomDataLayer *layer = &customdata->layers[i];
if (CD_MASK_PROP_ALL & CD_TYPE_AS_MASK(layer->type)) {
- if (index == active_index) {
+ if (index == active_index && BKE_attribute_allow_procedural_access(layer->name)) {
return layer;
}
index++;
More information about the Bf-blender-cvs
mailing list