Fix T87969: crash accesing FaceMaps / PaintMask data in editmode

Workaround for crash when accessing FaceMaps / PaintMask data in
editmode, just disallow access in editmode as is done with UVs.

Same fix as in {rB3e2619b3e72a}.

Maniphest Tasks: T87969

Differential Revision: https://developer.blender.org/D11146
This commit is contained in:
Philipp Oeser 2021-05-03 14:21:26 +02:00
parent 04b90ee18a
commit 04905c5652
Notes: blender-bot 2023-02-14 11:21:43 +01:00
Referenced by issue #87969, Crash: Editmode + facemap + looking at facemap data through Data API (Outliner)
1 changed files with 4 additions and 4 deletions

View File

@ -958,13 +958,13 @@ static void rna_MeshPaintMaskLayer_data_begin(CollectionPropertyIterator *iter,
{
Mesh *me = rna_mesh(ptr);
CustomDataLayer *layer = (CustomDataLayer *)ptr->data;
rna_iterator_array_begin(iter, layer->data, sizeof(MFloatProperty), me->totvert, 0, NULL);
rna_iterator_array_begin(iter, layer->data, sizeof(MFloatProperty), (me->edit_mesh) ? 0 : me->totvert, 0, NULL);
}
static int rna_MeshPaintMaskLayer_data_length(PointerRNA *ptr)
{
Mesh *me = rna_mesh(ptr);
return me->totvert;
return (me->edit_mesh) ? 0 : me->totvert;
}
/* End paint mask */
@ -987,13 +987,13 @@ static void rna_MeshFaceMapLayer_data_begin(CollectionPropertyIterator *iter, Po
{
Mesh *me = rna_mesh(ptr);
CustomDataLayer *layer = (CustomDataLayer *)ptr->data;
rna_iterator_array_begin(iter, layer->data, sizeof(int), me->totpoly, 0, NULL);
rna_iterator_array_begin(iter, layer->data, sizeof(int), (me->edit_mesh) ? 0 : me->totpoly, 0, NULL);
}
static int rna_MeshFaceMapLayer_data_length(PointerRNA *ptr)
{
Mesh *me = rna_mesh(ptr);
return me->totpoly;
return (me->edit_mesh) ? 0 : me->totpoly;
}
static PointerRNA rna_Mesh_face_map_new(struct Mesh *me, ReportList *reports, const char *name)