diff options
author | Philipp Oeser <info@graphics-engineer.com> | 2021-05-03 15:21:26 +0300 |
---|---|---|
committer | Philipp Oeser <info@graphics-engineer.com> | 2021-05-03 16:50:02 +0300 |
commit | 04905c56523aa7d25cc6f99c858963dbf2e050c8 (patch) | |
tree | fa6b9dc07bd1ba8a8c10727e82232f1e6cafa57d | |
parent | 04b90ee18a13ab0c1347dfc75191fb1905148280 (diff) |
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
-rw-r--r-- | source/blender/makesrna/intern/rna_mesh.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/source/blender/makesrna/intern/rna_mesh.c b/source/blender/makesrna/intern/rna_mesh.c index 03b3d92eea8..997999d1c1d 100644 --- a/source/blender/makesrna/intern/rna_mesh.c +++ b/source/blender/makesrna/intern/rna_mesh.c @@ -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) |