From c37bc8fa76d29f68008c1c299e026a59450b3c26 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 28 Jan 2013 04:10:47 +0000 Subject: minor optimization - don't do double lookups on vertex mask layer for vert_mask_get(), vert_mask_set(). add an assert because if the mesh is in an invalid state the mask layer can exist but the mask pointer still be NULL (noticed this while looking into a different bug). --- source/blender/bmesh/intern/bmesh_log.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'source') diff --git a/source/blender/bmesh/intern/bmesh_log.c b/source/blender/bmesh/intern/bmesh_log.c index 2b81bfaacfe..1337cb7c8eb 100644 --- a/source/blender/bmesh/intern/bmesh_log.c +++ b/source/blender/bmesh/intern/bmesh_log.c @@ -165,13 +165,13 @@ static BMFace *bm_log_face_from_id(BMLog *log, unsigned int id) * Returns zero if no paint-mask layer is present */ static float vert_mask_get(BMesh *bm, BMVert *v) { - CustomData *cd = &bm->vdata; - if (CustomData_has_layer(&bm->vdata, CD_PAINT_MASK)) { - float *mask = CustomData_bmesh_get(cd, v->head.data, CD_PAINT_MASK); + float *mask = CustomData_bmesh_get(&bm->vdata, v->head.data, CD_PAINT_MASK); + BLI_assert((CustomData_has_layer(&bm->vdata, CD_PAINT_MASK) == 0) == (mask == NULL)); + if (mask) { return *mask; } else { - return 0; + return 0.0f; } } @@ -180,10 +180,10 @@ static float vert_mask_get(BMesh *bm, BMVert *v) * Has no effect is no paint-mask layer is present */ static void vert_mask_set(BMesh *bm, BMVert *v, float new_mask) { - CustomData *cd = &bm->vdata; - if (CustomData_has_layer(cd, CD_PAINT_MASK)) { - float *mask = CustomData_bmesh_get(cd, v->head.data, CD_PAINT_MASK); - (*mask) = new_mask; + float *mask = CustomData_bmesh_get(&bm->vdata, v->head.data, CD_PAINT_MASK); + BLI_assert((CustomData_has_layer(&bm->vdata, CD_PAINT_MASK) == 0) == (mask == NULL)); + if (*mask) { + *mask = new_mask; } } -- cgit v1.2.3