When in mesh editmode, attributes point to bmesh customdata, the
attribute data is empty since custom data is stored per element instead
of a single array there (same es UVs etc.).
Opposed to e.g. UVs, general attributes were not setting their data
length/size to zero in case of editmode though, which could lead to
- crash in Outliner Data Api view [that was reported in T95922]
- RuntimeError such as the following:
RuntimeError: bpy_prop_collection[index]: internal error, valid index 0 given in 8 sized collection, but value not found
Now check for mesh editmode in BKE_id_attribute_data_length (and
return zero in that case).
Alternatively, the check could also be done in
rna_Attribute_data_length only (such as UVs do in
rna_MeshUVLoopLayer_data_length).