[Bf-blender-cvs] [39be226] master: BMesh: invalid return from BM_mesh_validate

Campbell Barton noreply at git.blender.org
Fri Nov 18 20:16:21 CET 2016


Commit: 39be226e93c4fe133065fb56ef5191fcc2ff8c9c
Author: Campbell Barton
Date:   Sat Nov 19 06:26:25 2016 +1100
Branches: master
https://developer.blender.org/rB39be226e93c4fe133065fb56ef5191fcc2ff8c9c

BMesh: invalid return from BM_mesh_validate

Returned value was always false, even for valid meshes,
note that this is a debug-only function.

Also set internal-tag cleared.

===================================================================

M	source/blender/bmesh/intern/bmesh_mesh_validate.c

===================================================================

diff --git a/source/blender/bmesh/intern/bmesh_mesh_validate.c b/source/blender/bmesh/intern/bmesh_mesh_validate.c
index 4781947..7c9ebc8 100644
--- a/source/blender/bmesh/intern/bmesh_mesh_validate.c
+++ b/source/blender/bmesh/intern/bmesh_mesh_validate.c
@@ -64,7 +64,7 @@ bool BM_mesh_validate(BMesh *bm)
 
 	int i, j;
 
-	errtot = -1;
+	errtot = -1; /* 'ERRMSG' next line will set at zero */
 	fprintf(stderr, "\n");
 	ERRMSG("This is a debugging function and not intended for general use, running slow test!");
 
@@ -187,15 +187,22 @@ bool BM_mesh_validate(BMesh *bm)
 		} while ((l_iter = l_iter->next) != l_first);
 
 		if (j != f->len) {
-			ERRMSG("face %d: has length if %d but should be %d", i, f->len, j);
+			ERRMSG("face %d: has length of %d but should be %d", i, f->len, j);
 		}
+
+		/* leave elements un-tagged, not essential but nice to avoid unintended dirty tag use later. */
+		do {
+			BM_elem_flag_disable(l_iter,    BM_ELEM_INTERNAL_TAG);
+			BM_elem_flag_disable(l_iter->v, BM_ELEM_INTERNAL_TAG);
+			BM_elem_flag_disable(l_iter->e, BM_ELEM_INTERNAL_TAG);
+		} while ((l_iter = l_iter->next) != l_first);
 	}
 
 	BLI_edgehash_free(edge_hash, NULL);
 
+	const bool is_valid = (errtot == 0);
 	ERRMSG("Finished - errors %d", errtot);
-
-	return (errtot == 0);
+	return is_valid;
 }




More information about the Bf-blender-cvs mailing list