diff options
-rw-r--r-- | source/blender/blenkernel/intern/mesh.c | 3 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/modifiers_bmesh.c | 3 | ||||
-rw-r--r-- | source/blender/bmesh/intern/bmesh_construct.c | 5 | ||||
-rw-r--r-- | source/blender/bmesh/intern/bmesh_core.c | 1 | ||||
-rw-r--r-- | source/blender/bmesh/intern/bmesh_mesh.h | 7 | ||||
-rw-r--r-- | source/blender/editors/mesh/editmesh_utils.c | 5 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/sculpt.c | 5 |
7 files changed, 15 insertions, 14 deletions
diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c index 8c179d17901..2dacd58fef9 100644 --- a/source/blender/blenkernel/intern/mesh.c +++ b/source/blender/blenkernel/intern/mesh.c @@ -530,8 +530,9 @@ Mesh *BKE_mesh_copy(Mesh *me) BMesh *BKE_mesh_to_bmesh(Mesh *me, Object *ob) { BMesh *bm; + const BMAllocTemplate allocsize = BMALLOC_TEMPLATE_FROM_ME(me); - bm = BM_mesh_create(&bm_mesh_allocsize_default); + bm = BM_mesh_create(&allocsize); BM_mesh_bm_from_me(bm, me, false, true, ob->shapenr); diff --git a/source/blender/blenkernel/intern/modifiers_bmesh.c b/source/blender/blenkernel/intern/modifiers_bmesh.c index d1797810c86..a9ff569e70a 100644 --- a/source/blender/blenkernel/intern/modifiers_bmesh.c +++ b/source/blender/blenkernel/intern/modifiers_bmesh.c @@ -232,8 +232,9 @@ BMEditMesh *DM_to_editbmesh(DerivedMesh *dm, BMEditMesh *existing, const bool do BMesh *DM_to_bmesh(DerivedMesh *dm, const bool calc_face_normal) { BMesh *bm; + const BMAllocTemplate allocsize = BMALLOC_TEMPLATE_FROM_DM(dm); - bm = BM_mesh_create(&bm_mesh_allocsize_default); + bm = BM_mesh_create(&allocsize); DM_to_bmesh_ex(dm, bm, calc_face_normal); diff --git a/source/blender/bmesh/intern/bmesh_construct.c b/source/blender/bmesh/intern/bmesh_construct.c index 60d9b62d6b9..930964667e9 100644 --- a/source/blender/bmesh/intern/bmesh_construct.c +++ b/source/blender/bmesh/intern/bmesh_construct.c @@ -911,10 +911,7 @@ BMesh *BM_mesh_copy(BMesh *bm_old) BMEditSelection *ese; BMIter iter; int i; - const BMAllocTemplate allocsize = {bm_old->totvert, - bm_old->totedge, - bm_old->totloop, - bm_old->totface}; + const BMAllocTemplate allocsize = BMALLOC_TEMPLATE_FROM_BM(bm_old); /* allocate a bmesh */ bm_new = BM_mesh_create(&allocsize); diff --git a/source/blender/bmesh/intern/bmesh_core.c b/source/blender/bmesh/intern/bmesh_core.c index 34e11f5c9f9..164a92125cd 100644 --- a/source/blender/bmesh/intern/bmesh_core.c +++ b/source/blender/bmesh/intern/bmesh_core.c @@ -1278,6 +1278,7 @@ BMFace *bmesh_sfme(BMesh *bm, BMFace *f, BMVert *v1, BMVert *v2, } if (!l_v1 || !l_v2) { + BLI_assert(0); return NULL; } diff --git a/source/blender/bmesh/intern/bmesh_mesh.h b/source/blender/bmesh/intern/bmesh_mesh.h index efcd80b374b..583b1589290 100644 --- a/source/blender/bmesh/intern/bmesh_mesh.h +++ b/source/blender/bmesh/intern/bmesh_mesh.h @@ -60,6 +60,13 @@ typedef struct BMAllocTemplate { extern const BMAllocTemplate bm_mesh_allocsize_default; extern const BMAllocTemplate bm_mesh_chunksize_default; +#define BMALLOC_TEMPLATE_FROM_BM(bm) { (CHECK_TYPE_INLINE(bm, BMesh *), \ + (bm)->totvert), (bm)->totedge, (bm)->totloop, (bm)->totface} +#define BMALLOC_TEMPLATE_FROM_ME(me) { (CHECK_TYPE_INLINE(me, Mesh *), \ + (me)->totvert), (me)->totedge, (me)->totloop, (me)->totpoly} +#define BMALLOC_TEMPLATE_FROM_DM(dm) { (CHECK_TYPE_INLINE(dm, DerivedMesh *), \ + (dm)->getNumVerts(dm)), (dm)->getNumEdges(dm), (dm)->getNumLoops(dm), (dm)->getNumPolys(dm)} + enum { BM_MESH_CREATE_USE_TOOLFLAGS = (1 << 0) }; diff --git a/source/blender/editors/mesh/editmesh_utils.c b/source/blender/editors/mesh/editmesh_utils.c index a64a23a9f4a..e457f7c45af 100644 --- a/source/blender/editors/mesh/editmesh_utils.c +++ b/source/blender/editors/mesh/editmesh_utils.c @@ -662,10 +662,7 @@ static void undoMesh_to_editbtMesh(void *umv, void *em_v, void *UNUSED(obdata)) UndoMesh *um = umv; BMesh *bm; - const BMAllocTemplate allocsize = {um->me.totvert, - um->me.totedge, - um->me.totloop, - um->me.totpoly}; + const BMAllocTemplate allocsize = BMALLOC_TEMPLATE_FROM_ME(&um->me); ob->shapenr = em->bm->shapenr = um->shapenr; diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index a557afcdf3d..e4853203dab 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -4677,10 +4677,7 @@ void sculpt_dynamic_topology_enable(bContext *C) Object *ob = CTX_data_active_object(C); SculptSession *ss = ob->sculpt; Mesh *me = ob->data; - const BMAllocTemplate allocsize = {me->totvert, - me->totedge, - me->totloop, - me->totpoly}; + const BMAllocTemplate allocsize = BMALLOC_TEMPLATE_FROM_ME(me); sculpt_pbvh_clear(ob); |