From c3a3664e8c7b196091a786251293012002735b91 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 10 May 2014 08:46:35 +1000 Subject: Utility macros for linklist stack & asserts for bmesh --- source/blender/blenlib/BLI_linklist_stack.h | 7 +++++++ source/blender/bmesh/intern/bmesh_core.c | 5 ++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/source/blender/blenlib/BLI_linklist_stack.h b/source/blender/blenlib/BLI_linklist_stack.h index 1933dd733c3..5f4f98c5a4f 100644 --- a/source/blender/blenlib/BLI_linklist_stack.h +++ b/source/blender/blenlib/BLI_linklist_stack.h @@ -155,6 +155,13 @@ (_BLI_SMALLSTACK_CAST(var_src) ((_##var_src##_stack) ? \ (_BLI_SMALLSTACK_DEL_EX(var_src, var_dst), (_##var_dst##_free->link)) : NULL)) +#define BLI_SMALLSTACK_LAST(var) \ + (_BLI_SMALLSTACK_CAST(var) ((_##var##_stack) ? \ + _##var##_stack->link : NULL)) + +#define BLI_SMALLSTACK_IS_EMPTY(var) \ + (_BLI_SMALLSTACK_CAST(var) (_##var##_stack != NULL)) + /* loop over stack members last-added-first */ #define BLI_SMALLSTACK_ITER_BEGIN(var, item) \ { \ diff --git a/source/blender/bmesh/intern/bmesh_core.c b/source/blender/bmesh/intern/bmesh_core.c index 4c70305476f..1f81b59badc 100644 --- a/source/blender/bmesh/intern/bmesh_core.c +++ b/source/blender/bmesh/intern/bmesh_core.c @@ -132,7 +132,10 @@ BMEdge *BM_edge_create(BMesh *bm, BMVert *v1, BMVert *v2, const BMEdge *e_example, const eBMCreateFlag create_flag) { BMEdge *e; - + + BLI_assert(v1 != v2); + BLI_assert(v1->head.htype == BM_VERT && v2->head.htype == BM_VERT); + if ((create_flag & BM_CREATE_NO_DOUBLE) && (e = BM_edge_exists(v1, v2))) return e; -- cgit v1.2.3