[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54135] trunk/blender/source/blender/bmesh /intern/bmesh_log.c: minor optimization - don' t do double lookups on vertex mask layer for vert_mask_get(), vert_mask_set ().
Campbell Barton
ideasman42 at gmail.com
Mon Jan 28 05:10:54 CET 2013
Revision: 54135
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54135
Author: campbellbarton
Date: 2013-01-28 04:10:47 +0000 (Mon, 28 Jan 2013)
Log Message:
-----------
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).
Modified Paths:
--------------
trunk/blender/source/blender/bmesh/intern/bmesh_log.c
Modified: trunk/blender/source/blender/bmesh/intern/bmesh_log.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_log.c 2013-01-28 02:48:19 UTC (rev 54134)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_log.c 2013-01-28 04:10:47 UTC (rev 54135)
@@ -165,13 +165,13 @@
* 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 @@
* 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;
}
}
More information about the Bf-blender-cvs
mailing list