Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2013-01-28 08:10:47 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-01-28 08:10:47 +0400
commitc37bc8fa76d29f68008c1c299e026a59450b3c26 (patch)
tree430b98712f6bbf745275661573061fc38efb8fdb /source
parent67c2cd916d626d1557d92847c996eccfa9ff2ab9 (diff)
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).
Diffstat (limited to 'source')
-rw-r--r--source/blender/bmesh/intern/bmesh_log.c16
1 files changed, 8 insertions, 8 deletions
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;
}
}