[Bf-blender-cvs] [d98b6a2] master: BMesh: typecheck iterator

Campbell Barton noreply at git.blender.org
Sat Aug 2 10:09:15 CEST 2014


Commit: d98b6a289cc3769b1a8f4e5295533c029e4bd1fa
Author: Campbell Barton
Date:   Sat Aug 2 18:03:07 2014 +1000
Branches: master
https://developer.blender.org/rBd98b6a289cc3769b1a8f4e5295533c029e4bd1fa

BMesh: typecheck iterator

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

M	source/blender/bmesh/intern/bmesh_iterators_inline.h

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

diff --git a/source/blender/bmesh/intern/bmesh_iterators_inline.h b/source/blender/bmesh/intern/bmesh_iterators_inline.h
index 6a0eb0e..b9733d4 100644
--- a/source/blender/bmesh/intern/bmesh_iterators_inline.h
+++ b/source/blender/bmesh/intern/bmesh_iterators_inline.h
@@ -80,60 +80,70 @@ BLI_INLINE bool BM_iter_init(BMIter *iter, BMesh *bm, const char itype, void *da
 			break;
 		case BM_EDGES_OF_VERT:
 			BLI_assert(data != NULL);
+			BLI_assert(((BMElem *)data)->head.htype == BM_VERT);
 			iter->begin = (BMIter__begin_cb)bmiter__edge_of_vert_begin;
 			iter->step  = (BMIter__step_cb)bmiter__edge_of_vert_step;
 			iter->data.edge_of_vert.vdata = (BMVert *)data;
 			break;
 		case BM_FACES_OF_VERT:
 			BLI_assert(data != NULL);
+			BLI_assert(((BMElem *)data)->head.htype == BM_VERT);
 			iter->begin = (BMIter__begin_cb)bmiter__face_of_vert_begin;
 			iter->step  = (BMIter__step_cb)bmiter__face_of_vert_step;
 			iter->data.face_of_vert.vdata = (BMVert *)data;
 			break;
 		case BM_LOOPS_OF_VERT:
 			BLI_assert(data != NULL);
+			BLI_assert(((BMElem *)data)->head.htype == BM_VERT);
 			iter->begin = (BMIter__begin_cb)bmiter__loop_of_vert_begin;
 			iter->step  = (BMIter__step_cb)bmiter__loop_of_vert_step;
 			iter->data.loop_of_vert.vdata = (BMVert *)data;
 			break;
 		case BM_VERTS_OF_EDGE:
 			BLI_assert(data != NULL);
+			BLI_assert(((BMElem *)data)->head.htype == BM_EDGE);
 			iter->begin = (BMIter__begin_cb)bmiter__vert_of_edge_begin;
 			iter->step  = (BMIter__step_cb)bmiter__vert_of_edge_step;
 			iter->data.vert_of_edge.edata = (BMEdge *)data;
 			break;
 		case BM_FACES_OF_EDGE:
 			BLI_assert(data != NULL);
+			BLI_assert(((BMElem *)data)->head.htype == BM_EDGE);
 			iter->begin = (BMIter__begin_cb)bmiter__face_of_edge_begin;
 			iter->step  = (BMIter__step_cb)bmiter__face_of_edge_step;
 			iter->data.face_of_edge.edata = (BMEdge *)data;
 			break;
 		case BM_VERTS_OF_FACE:
 			BLI_assert(data != NULL);
+			BLI_assert(((BMElem *)data)->head.htype == BM_FACE);
 			iter->begin = (BMIter__begin_cb)bmiter__vert_of_face_begin;
 			iter->step  = (BMIter__step_cb)bmiter__vert_of_face_step;
 			iter->data.vert_of_face.pdata = (BMFace *)data;
 			break;
 		case BM_EDGES_OF_FACE:
 			BLI_assert(data != NULL);
+			BLI_assert(((BMElem *)data)->head.htype == BM_FACE);
 			iter->begin = (BMIter__begin_cb)bmiter__edge_of_face_begin;
 			iter->step  = (BMIter__step_cb)bmiter__edge_of_face_step;
 			iter->data.edge_of_face.pdata = (BMFace *)data;
 			break;
 		case BM_LOOPS_OF_FACE:
 			BLI_assert(data != NULL);
+			BLI_assert(((BMElem *)data)->head.htype == BM_FACE);
 			iter->begin = (BMIter__begin_cb)bmiter__loop_of_face_begin;
 			iter->step  = (BMIter__step_cb)bmiter__loop_of_face_step;
 			iter->data.loop_of_face.pdata = (BMFace *)data;
 			break;
 		case BM_LOOPS_OF_LOOP:
 			BLI_assert(data != NULL);
+			BLI_assert(((BMElem *)data)->head.htype == BM_LOOP);
 			iter->begin = (BMIter__begin_cb)bmiter__loop_of_loop_begin;
 			iter->step  = (BMIter__step_cb)bmiter__loop_of_loop_step;
 			iter->data.loop_of_loop.ldata = (BMLoop *)data;
 			break;
 		case BM_LOOPS_OF_EDGE:
 			BLI_assert(data != NULL);
+			BLI_assert(((BMElem *)data)->head.htype == BM_EDGE);
 			iter->begin = (BMIter__begin_cb)bmiter__loop_of_edge_begin;
 			iter->step  = (BMIter__step_cb)bmiter__loop_of_edge_step;
 			iter->data.loop_of_edge.edata = (BMEdge *)data;




More information about the Bf-blender-cvs mailing list