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;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to