From 04905c56523aa7d25cc6f99c858963dbf2e050c8 Mon Sep 17 00:00:00 2001 From: Philipp Oeser Date: Mon, 3 May 2021 14:21:26 +0200 Subject: 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 --- source/blender/makesrna/intern/rna_mesh.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source') 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) -- cgit v1.2.3