Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2012-11-29 20:26:39 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-11-29 20:26:39 +0400
commit07ccd3ee3f9700730a60013a66b09466af2585d3 (patch)
tree5794ab3a7d76889f291dc1a3ecf00a2cbff9ef85 /source/blender/bmesh/operators
parentf1745706adcd2337fe183e30c1b026a05c198839 (diff)
fix [#33029] Applying modifier leaks memory
Thanks for Sergey for finding the bug & patching, This fix works a bit differently. Theres no need to allocate the customdata in the first place - since its written into. So add a flag for vert/edge/face/loop creation functions so they can skip customdata creation.
Diffstat (limited to 'source/blender/bmesh/operators')
-rw-r--r--source/blender/bmesh/operators/bmo_create.c24
-rw-r--r--source/blender/bmesh/operators/bmo_dupe.c6
-rw-r--r--source/blender/bmesh/operators/bmo_extrude.c14
-rw-r--r--source/blender/bmesh/operators/bmo_hull.c6
-rw-r--r--source/blender/bmesh/operators/bmo_inset.c4
-rw-r--r--source/blender/bmesh/operators/bmo_primitive.c46
-rw-r--r--source/blender/bmesh/operators/bmo_removedoubles.c4
-rw-r--r--source/blender/bmesh/operators/bmo_symmetrize.c18
-rw-r--r--source/blender/bmesh/operators/bmo_utils.c2
-rw-r--r--source/blender/bmesh/operators/bmo_wireframe.c8
10 files changed, 66 insertions, 66 deletions
diff --git a/source/blender/bmesh/operators/bmo_create.c b/source/blender/bmesh/operators/bmo_create.c
index a6bbd092760..aa69806fb37 100644
--- a/source/blender/bmesh/operators/bmo_create.c
+++ b/source/blender/bmesh/operators/bmo_create.c
@@ -274,7 +274,7 @@ static int UNUSED_FUNCTION(rotsys_fill_faces)(BMesh *bm, EdgeData *edata, VertDa
if (!ok || BLI_array_count(edges) < 3)
continue;
- f = BM_face_create_ngon(bm, verts[0], verts[1], edges, BLI_array_count(edges), TRUE);
+ f = BM_face_create_ngon(bm, verts[0], verts[1], edges, BLI_array_count(edges), BM_CREATE_NO_DOUBLE);
if (UNLIKELY(f == NULL)) {
continue;
}
@@ -611,11 +611,11 @@ static void init_rotsys(BMesh *bm, EdgeData *edata, VertData *vdata)
v2 = BM_vert_create(bm, co, NULL);
BM_elem_index_set(v2, -1); /* set_dirty! */
- //BM_edge_create(bm, cv, v2, NULL, FALSE);
+ //BM_edge_create(bm, cv, v2, NULL, 0);
BM_vert_select_set(bm, v2, TRUE);
if (lastv) {
- e2 = BM_edge_create(bm, lastv, v2, NULL, FALSE);
+ e2 = BM_edge_create(bm, lastv, v2, NULL, 0);
BM_edge_select_set(bm, e2, TRUE);
}
@@ -1051,7 +1051,7 @@ void bmo_edgenet_fill_exec(BMesh *bm, BMOperator *op)
/* fairly expensive check - see if there are already faces filling this area */
(BM_face_exists_multi_edge(edges, i) == FALSE))
{
- f = BM_face_create_ngon(bm, v1, v2, edges, i, TRUE);
+ f = BM_face_create_ngon(bm, v1, v2, edges, i, BM_CREATE_NO_DOUBLE);
if (f && !BMO_elem_flag_test(bm, f, ELE_ORIG)) {
BMO_elem_flag_enable(bm, f, FACE_NEW);
f->mat_nr = mat_nr;
@@ -1249,9 +1249,9 @@ void bmo_edgenet_prepare_exec(BMesh *bm, BMOperator *op)
SWAP(BMVert *, v3, v4);
}
- e = BM_edge_create(bm, v1, v3, NULL, TRUE);
+ e = BM_edge_create(bm, v1, v3, NULL, BM_CREATE_NO_DOUBLE);
BMO_elem_flag_enable(bm, e, ELE_NEW);
- e = BM_edge_create(bm, v2, v4, NULL, TRUE);
+ e = BM_edge_create(bm, v2, v4, NULL, BM_CREATE_NO_DOUBLE);
BMO_elem_flag_enable(bm, e, ELE_NEW);
}
else if (edges1) {
@@ -1261,7 +1261,7 @@ void bmo_edgenet_prepare_exec(BMesh *bm, BMOperator *op)
v1 = BM_vert_in_edge(edges1[1], edges1[0]->v1) ? edges1[0]->v2 : edges1[0]->v1;
i = BLI_array_count(edges1) - 1;
v2 = BM_vert_in_edge(edges1[i - 1], edges1[i]->v1) ? edges1[i]->v2 : edges1[i]->v1;
- e = BM_edge_create(bm, v1, v2, NULL, TRUE);
+ e = BM_edge_create(bm, v1, v2, NULL, BM_CREATE_NO_DOUBLE);
BMO_elem_flag_enable(bm, e, ELE_NEW);
}
}
@@ -1359,10 +1359,10 @@ void bmo_contextual_create_exec(BMesh *bm, BMOperator *op)
}
if (ok == TRUE && v_free && v_a && v_b) {
- e = BM_edge_create(bm, v_free, v_a, NULL, TRUE);
+ e = BM_edge_create(bm, v_free, v_a, NULL, BM_CREATE_NO_DOUBLE);
BMO_elem_flag_enable(bm, e, ELE_NEW);
- e = BM_edge_create(bm, v_free, v_b, NULL, TRUE);
+ e = BM_edge_create(bm, v_free, v_b, NULL, BM_CREATE_NO_DOUBLE);
BMO_elem_flag_enable(bm, e, ELE_NEW);
}
}
@@ -1420,7 +1420,7 @@ void bmo_contextual_create_exec(BMesh *bm, BMOperator *op)
if (amount == 2) {
/* create edge */
- e = BM_edge_create(bm, verts[0], verts[1], NULL, TRUE);
+ e = BM_edge_create(bm, verts[0], verts[1], NULL, BM_CREATE_NO_DOUBLE);
BMO_elem_flag_enable(bm, e, ELE_OUT);
BMO_slot_buffer_from_enabled_flag(bm, op, op->slots_out, "edges.out", BM_EDGE, ELE_OUT);
}
@@ -1461,7 +1461,7 @@ void bmo_contextual_create_exec(BMesh *bm, BMOperator *op)
if (ese->htype == BM_VERT) {
v = (BMVert *)ese->ele;
if (v_prev) {
- e = BM_edge_create(bm, v, v_prev, NULL, TRUE);
+ e = BM_edge_create(bm, v, v_prev, NULL, BM_CREATE_NO_DOUBLE);
BMO_elem_flag_enable(bm, e, ELE_OUT);
}
v_prev = v;
@@ -1483,7 +1483,7 @@ void bmo_contextual_create_exec(BMesh *bm, BMOperator *op)
i++;
}
- f = BM_face_create_ngon_vcloud(bm, vert_arr, totv, TRUE);
+ f = BM_face_create_ngon_vcloud(bm, vert_arr, totv, BM_CREATE_NO_DOUBLE);
if (f) {
BMO_elem_flag_enable(bm, f, ELE_OUT);
diff --git a/source/blender/bmesh/operators/bmo_dupe.c b/source/blender/bmesh/operators/bmo_dupe.c
index 67460a0298e..9a58d7acfb9 100644
--- a/source/blender/bmesh/operators/bmo_dupe.c
+++ b/source/blender/bmesh/operators/bmo_dupe.c
@@ -49,7 +49,7 @@ static BMVert *copy_vertex(BMesh *source_mesh, BMVert *source_vertex, BMesh *tar
BMVert *target_vertex = NULL;
/* Create a new vertex */
- target_vertex = BM_vert_create(target_mesh, source_vertex->co, NULL);
+ target_vertex = BM_vert_create(target_mesh, source_vertex->co, NULL, BM_CREATE_SKIP_CD);
/* Insert new vertex into the vert hash */
BLI_ghash_insert(vhash, source_vertex, target_vertex);
@@ -98,7 +98,7 @@ static BMEdge *copy_edge(BMOperator *op,
target_vert2 = BLI_ghash_lookup(vhash, source_edge->v2);
/* Create a new edge */
- target_edge = BM_edge_create(target_mesh, target_vert1, target_vert2, NULL, FALSE);
+ target_edge = BM_edge_create(target_mesh, target_vert1, target_vert2, NULL, BM_CREATE_SKIP_CD);
/* add to new/old edge map if necassary */
if (rlen < 2) {
@@ -156,7 +156,7 @@ static BMFace *copy_face(BMOperator *op,
}
/* create new face */
- target_face = BM_face_create(target_mesh, vtar, edar, source_face->len, FALSE);
+ target_face = BM_face_create(target_mesh, vtar, edar, source_face->len, BM_CREATE_SKIP_CD);
BMO_slot_map_elem_insert(op, slot_facemap_out, source_face, target_face);
BMO_slot_map_elem_insert(op, slot_facemap_out, target_face, source_face);
diff --git a/source/blender/bmesh/operators/bmo_extrude.c b/source/blender/bmesh/operators/bmo_extrude.c
index 1ab640ba6a5..065a1b57737 100644
--- a/source/blender/bmesh/operators/bmo_extrude.c
+++ b/source/blender/bmesh/operators/bmo_extrude.c
@@ -67,11 +67,11 @@ void bmo_extrude_discrete_faces_exec(BMesh *bm, BMOperator *op)
i = 0;
firstv = lastv = NULL;
BM_ITER_ELEM (l, &liter, f, BM_LOOPS_OF_FACE) {
- v = BM_vert_create(bm, l->v->co, l->v);
+ v = BM_vert_create(bm, l->v->co, l->v, 0);
/* skip on the first iteration */
if (lastv) {
- e = BM_edge_create(bm, lastv, v, l->e, FALSE);
+ e = BM_edge_create(bm, lastv, v, l->e, 0);
edges[i++] = e;
}
@@ -81,12 +81,12 @@ void bmo_extrude_discrete_faces_exec(BMesh *bm, BMOperator *op)
}
/* this fits in the array because we skip one in the loop above */
- e = BM_edge_create(bm, v, firstv, laste, FALSE);
+ e = BM_edge_create(bm, v, firstv, laste, 0);
edges[i++] = e;
BMO_elem_flag_enable(bm, f, EXT_DEL);
- f2 = BM_face_create_ngon(bm, firstv, BM_edge_other_vert(edges[0], firstv), edges, f->len, FALSE);
+ f2 = BM_face_create_ngon(bm, firstv, BM_edge_other_vert(edges[0], firstv), edges, f->len, 0);
if (UNLIKELY(f2 == NULL)) {
BMO_error_raise(bm, op, BMERR_MESH_ERROR, "Extrude failed: could not create face");
BLI_array_free(edges);
@@ -241,11 +241,11 @@ void bmo_extrude_vert_indiv_exec(BMesh *bm, BMOperator *op)
const int has_vskin = CustomData_has_layer(&bm->vdata, CD_MVERT_SKIN);
for (v = BMO_iter_new(&siter, op->slots_in, "verts", BM_VERT); v; v = BMO_iter_step(&siter)) {
- dupev = BM_vert_create(bm, v->co, v);
+ dupev = BM_vert_create(bm, v->co, v, 0);
if (has_vskin)
bm_extrude_disable_skin_root(bm, v);
- e = BM_edge_create(bm, v, dupev, NULL, FALSE);
+ e = BM_edge_create(bm, v, dupev, NULL, 0);
BMO_elem_flag_enable(bm, e, EXT_KEEP);
BMO_elem_flag_enable(bm, dupev, EXT_KEEP);
@@ -430,7 +430,7 @@ void bmo_extrude_face_region_exec(BMesh *bm, BMOperator *op)
/* link isolated vert */
for (v = BMO_iter_new(&siter, dupeop.slots_out, "isovert_map.out", 0); v; v = BMO_iter_step(&siter)) {
v2 = *((void **)BMO_iter_map_value(&siter));
- BM_edge_create(bm, v, v2, v->e, TRUE);
+ BM_edge_create(bm, v, v2, v->e, BM_CREATE_NO_DOUBLE);
}
/* cleanup */
diff --git a/source/blender/bmesh/operators/bmo_hull.c b/source/blender/bmesh/operators/bmo_hull.c
index 08fc97ea262..e2da4f4f89c 100644
--- a/source/blender/bmesh/operators/bmo_hull.c
+++ b/source/blender/bmesh/operators/bmo_hull.c
@@ -113,9 +113,9 @@ static void hull_output_triangles(BMesh *bm, GHash *hull_triangles)
if (!t->skip) {
BMEdge *edges[3] = {
- BM_edge_create(bm, t->v[0], t->v[1], NULL, TRUE),
- BM_edge_create(bm, t->v[1], t->v[2], NULL, TRUE),
- BM_edge_create(bm, t->v[2], t->v[0], NULL, TRUE)
+ BM_edge_create(bm, t->v[0], t->v[1], NULL, BM_CREATE_NO_DOUBLE),
+ BM_edge_create(bm, t->v[1], t->v[2], NULL, BM_CREATE_NO_DOUBLE),
+ BM_edge_create(bm, t->v[2], t->v[0], NULL, BM_CREATE_NO_DOUBLE)
};
BMFace *f, *example = NULL;
diff --git a/source/blender/bmesh/operators/bmo_inset.c b/source/blender/bmesh/operators/bmo_inset.c
index 9abf129a529..cef1181f63b 100644
--- a/source/blender/bmesh/operators/bmo_inset.c
+++ b/source/blender/bmesh/operators/bmo_inset.c
@@ -181,7 +181,7 @@ void bmo_inset_exec(BMesh *bm, BMOperator *op)
if (es->e_new == es->e_old) { /* happens on boundary edges */
/* take care here, we're creating this double edge which _must_ have its verts replaced later on */
- es->e_old = BM_edge_create(bm, es->e_new->v1, es->e_new->v2, es->e_new, FALSE);
+ es->e_old = BM_edge_create(bm, es->e_new->v1, es->e_new->v2, es->e_new, 0);
}
/* store index back to original in 'edge_info' */
@@ -205,7 +205,7 @@ void bmo_inset_exec(BMesh *bm, BMOperator *op)
v1 = BM_vert_create(bm, tvec, NULL);
v2 = BM_vert_create(bm, tvec, NULL);
madd_v3_v3fl(v2->co, es->no, 0.1f);
- BM_edge_create(bm, v1, v2, NULL, FALSE);
+ BM_edge_create(bm, v1, v2, NULL, 0);
}
#endif
diff --git a/source/blender/bmesh/operators/bmo_primitive.c b/source/blender/bmesh/operators/bmo_primitive.c
index b8f154350ea..c582f710f43 100644
--- a/source/blender/bmesh/operators/bmo_primitive.c
+++ b/source/blender/bmesh/operators/bmo_primitive.c
@@ -248,11 +248,11 @@ void bmo_create_grid_exec(BMesh *bm, BMOperator *op)
vec[2] = 0.0f;
mul_m4_v3(mat, vec);
- eve = BM_vert_create(bm, vec, NULL);
+ eve = BM_vert_create(bm, vec, NULL, 0);
BMO_elem_flag_enable(bm, eve, VERT_MARK);
if (a != 0) {
- e = BM_edge_create(bm, preveve, eve, NULL, TRUE);
+ e = BM_edge_create(bm, preveve, eve, NULL, BM_CREATE_NO_DOUBLE);
BMO_elem_flag_enable(bm, e, EDGE_ORIG);
}
@@ -317,11 +317,11 @@ void bmo_create_uvsphere_exec(BMesh *bm, BMOperator *op)
vec[0] = -dia * sinf(phi);
vec[1] = 0.0;
vec[2] = dia * cosf(phi);
- eve = BM_vert_create(bm, vec, NULL);
+ eve = BM_vert_create(bm, vec, NULL, 0);
BMO_elem_flag_enable(bm, eve, VERT_MARK);
if (a != 0) {
- e = BM_edge_create(bm, preveve, eve, NULL, FALSE);
+ e = BM_edge_create(bm, preveve, eve, NULL, 0);
BMO_elem_flag_enable(bm, e, EDGE_ORIG);
}
@@ -407,7 +407,7 @@ void bmo_create_icosphere_exec(BMesh *bm, BMOperator *op)
vec[0] = dia_div * icovert[a][0];
vec[1] = dia_div * icovert[a][1];
vec[2] = dia_div * icovert[a][2];
- eva[a] = BM_vert_create(bm, vec, NULL);
+ eva[a] = BM_vert_create(bm, vec, NULL, 0);
BMO_elem_flag_enable(bm, eva[a], VERT_MARK);
}
@@ -470,12 +470,12 @@ void bmo_create_monkey_exec(BMesh *bm, BMOperator *op)
v[0] = (monkeyv[i][0] + 127) / 128.0, v[1] = monkeyv[i][1] / 128.0, v[2] = monkeyv[i][2] / 128.0;
- tv[i] = BM_vert_create(bm, v, NULL);
+ tv[i] = BM_vert_create(bm, v, NULL, 0);
BMO_elem_flag_enable(bm, tv[i], VERT_MARK);
tv[monkeynv + i] = (fabsf(v[0] = -v[0]) < 0.001f) ?
tv[i] :
- (eve = BM_vert_create(bm, v, NULL), mul_m4_v3(mat, eve->co), eve);
+ (eve = BM_vert_create(bm, v, NULL, 0), mul_m4_v3(mat, eve->co), eve);
BMO_elem_flag_enable(bm, tv[monkeynv + i], VERT_MARK);
@@ -527,7 +527,7 @@ void bmo_create_circle_exec(BMesh *bm, BMOperator *op)
zero_v3(vec);
mul_m4_v3(mat, vec);
- cent1 = BM_vert_create(bm, vec, NULL);
+ cent1 = BM_vert_create(bm, vec, NULL, 0);
BMO_elem_flag_enable(bm, cent1, VERT_MARK);
}
@@ -537,12 +537,12 @@ void bmo_create_circle_exec(BMesh *bm, BMOperator *op)
vec[1] = dia * cosf(phi);
vec[2] = 0.0f;
mul_m4_v3(mat, vec);
- v1 = BM_vert_create(bm, vec, NULL);
+ v1 = BM_vert_create(bm, vec, NULL, 0);
BMO_elem_flag_enable(bm, v1, VERT_MARK);
if (lastv1)
- BM_edge_create(bm, v1, lastv1, NULL, FALSE);
+ BM_edge_create(bm, v1, lastv1, NULL, 0);
if (a && cap_ends) {
BMFace *f;
@@ -560,7 +560,7 @@ void bmo_create_circle_exec(BMesh *bm, BMOperator *op)
if (!a)
return;
- BM_edge_create(bm, firstv1, lastv1, NULL, FALSE);
+ BM_edge_create(bm, firstv1, lastv1, NULL, 0);
if (cap_ends) {
BMFace *f;
@@ -602,13 +602,13 @@ void bmo_create_cone_exec(BMesh *bm, BMOperator *op)
vec[2] = -depth;
mul_m4_v3(mat, vec);
- cent1 = BM_vert_create(bm, vec, NULL);
+ cent1 = BM_vert_create(bm, vec, NULL, 0);
vec[0] = vec[1] = 0.0f;
vec[2] = depth;
mul_m4_v3(mat, vec);
- cent2 = BM_vert_create(bm, vec, NULL);
+ cent2 = BM_vert_create(bm, vec, NULL, 0);
BMO_elem_flag_enable(bm, cent1, VERT_MARK);
BMO_elem_flag_enable(bm, cent2, VERT_MARK);
@@ -619,13 +619,13 @@ void bmo_create_cone_exec(BMesh *bm, BMOperator *op)
vec[1] = dia1 * cosf(phi);
vec[2] = -depth;
mul_m4_v3(mat, vec);
- v1 = BM_vert_create(bm, vec, NULL);
+ v1 = BM_vert_create(bm, vec, NULL, 0);
vec[0] = dia2 * sinf(phi);
vec[1] = dia2 * cosf(phi);
vec[2] = depth;
mul_m4_v3(mat, vec);
- v2 = BM_vert_create(bm, vec, NULL);
+ v2 = BM_vert_create(bm, vec, NULL, 0);
BMO_elem_flag_enable(bm, v1, VERT_MARK);
BMO_elem_flag_enable(bm, v2, VERT_MARK);
@@ -685,56 +685,56 @@ void bmo_create_cube_exec(BMesh *bm, BMOperator *op)
vec[1] = -off;
vec[2] = -off;
mul_m4_v3(mat, vec);
- v1 = BM_vert_create(bm, vec, NULL);
+ v1 = BM_vert_create(bm, vec, NULL, 0);
BMO_elem_flag_enable(bm, v1, VERT_MARK);
vec[0] = -off;
vec[1] = off;
vec[2] = -off;
mul_m4_v3(mat, vec);
- v2 = BM_vert_create(bm, vec, NULL);
+ v2 = BM_vert_create(bm, vec, NULL, 0);
BMO_elem_flag_enable(bm, v2, VERT_MARK);
vec[0] = off;
vec[1] = off;
vec[2] = -off;
mul_m4_v3(mat, vec);
- v3 = BM_vert_create(bm, vec, NULL);
+ v3 = BM_vert_create(bm, vec, NULL, 0);
BMO_elem_flag_enable(bm, v3, VERT_MARK);
vec[0] = off;
vec[1] = -off;
vec[2] = -off;
mul_m4_v3(mat, vec);
- v4 = BM_vert_create(bm, vec, NULL);
+ v4 = BM_vert_create(bm, vec, NULL, 0);
BMO_elem_flag_enable(bm, v4, VERT_MARK);
vec[0] = -off;
vec[1] = -off;
vec[2] = off;
mul_m4_v3(mat, vec);
- v5 = BM_vert_create(bm, vec, NULL);
+ v5 = BM_vert_create(bm, vec, NULL, 0);
BMO_elem_flag_enable(bm, v5, VERT_MARK);
vec[0] = -off;
vec[1] = off;
vec[2] = off;
mul_m4_v3(mat, vec);
- v6 = BM_vert_create(bm, vec, NULL);
+ v6 = BM_vert_create(bm, vec, NULL, 0);
BMO_elem_flag_enable(bm, v6, VERT_MARK);
vec[0] = off;
vec[1] = off;
vec[2] = off;
mul_m4_v3(mat, vec);
- v7 = BM_vert_create(bm, vec, NULL);
+ v7 = BM_vert_create(bm, vec, NULL, 0);
BMO_elem_flag_enable(bm, v7, VERT_MARK);
vec[0] = off;
vec[1] = -off;
vec[2] = off;
mul_m4_v3(mat, vec);
- v8 = BM_vert_create(bm, vec, NULL);
+ v8 = BM_vert_create(bm, vec, NULL, 0);
BMO_elem_flag_enable(bm, v8, VERT_MARK);
/* the four sides */
diff --git a/source/blender/bmesh/operators/bmo_removedoubles.c b/source/blender/bmesh/operators/bmo_removedoubles.c
index d27a90f0366..87e26f11d4b 100644
--- a/source/blender/bmesh/operators/bmo_removedoubles.c
+++ b/source/blender/bmesh/operators/bmo_removedoubles.c
@@ -136,7 +136,7 @@ void bmo_weld_verts_exec(BMesh *bm, BMOperator *op)
BMO_elem_flag_enable(bm, e, EDGE_COL);
}
else if (!BM_edge_exists(v, v2)) {
- BM_edge_create(bm, v, v2, e, TRUE);
+ BM_edge_create(bm, v, v2, e, BM_CREATE_NO_DOUBLE);
}
BMO_elem_flag_enable(bm, e, ELE_DEL);
@@ -214,7 +214,7 @@ void bmo_weld_verts_exec(BMesh *bm, BMOperator *op)
v2 = BMO_slot_map_elem_get(slot_targetmap, v2);
}
- f2 = BM_face_create_ngon(bm, v, v2, edges, a, TRUE);
+ f2 = BM_face_create_ngon(bm, v, v2, edges, a, BM_CREATE_NO_DOUBLE);
if (f2 && (f2 != f)) {
BM_elem_attrs_copy(bm, bm, f, f2);
diff --git a/source/blender/bmesh/operators/bmo_symmetrize.c b/source/blender/bmesh/operators/bmo_symmetrize.c
index a58db1e6961..248c7268ac6 100644
--- a/source/blender/bmesh/operators/bmo_symmetrize.c
+++ b/source/blender/bmesh/operators/bmo_symmetrize.c
@@ -106,7 +106,7 @@ static void symm_verts_mirror(Symm *symm)
copy_v3_v3(co, src_v->co);
co[symm->axis] = -co[symm->axis];
- dst_v = BM_vert_create(symm->bm, co, src_v);
+ dst_v = BM_vert_create(symm->bm, co, src_v, 0);
BMO_elem_flag_enable(symm->bm, dst_v, SYMM_OUTPUT_GEOM);
BLI_ghash_insert(symm->vert_symm_map, src_v, dst_v);
break;
@@ -183,7 +183,7 @@ static void symm_split_asymmetric_edges(Symm *symm)
co[symm->axis] = 0;
/* Edge is asymmetric, split it with a new vertex */
- v = BM_vert_create(symm->bm, co, e->v1);
+ v = BM_vert_create(symm->bm, co, e->v1, 0);
BMO_elem_flag_enable(symm->bm, v, SYMM_OUTPUT_GEOM);
BLI_ghash_insert(symm->edge_split_map, e, v);
}
@@ -203,7 +203,7 @@ static void symm_mirror_edges(Symm *symm)
v2 = BLI_ghash_lookup(symm->vert_symm_map, e->v2);
if (v1 && v2) {
- e_new = BM_edge_create(symm->bm, v1, v2, e, TRUE);
+ e_new = BM_edge_create(symm->bm, v1, v2, e, BM_CREATE_NO_DOUBLE);
BMO_elem_flag_enable(symm->bm, e_new, SYMM_OUTPUT_GEOM);
}
else if (v1 || v2) {
@@ -212,18 +212,18 @@ static void symm_mirror_edges(Symm *symm)
/* Output the keep side of the split edge */
if (!v1) {
- e_new = BM_edge_create(symm->bm, v_split, e->v2, e, TRUE);
+ e_new = BM_edge_create(symm->bm, v_split, e->v2, e, BM_CREATE_NO_DOUBLE);
BMO_elem_flag_enable(symm->bm, e_new, SYMM_OUTPUT_GEOM);
v1 = v_split;
}
else {
- e_new = BM_edge_create(symm->bm, e->v1, v_split, e, TRUE);
+ e_new = BM_edge_create(symm->bm, e->v1, v_split, e, BM_CREATE_NO_DOUBLE);
BMO_elem_flag_enable(symm->bm, e_new, SYMM_OUTPUT_GEOM);
v2 = v_split;
}
/* Output the kill side of the split edge */
- e_new = BM_edge_create(symm->bm, v1, v2, e, TRUE);
+ e_new = BM_edge_create(symm->bm, v1, v2, e, BM_CREATE_NO_DOUBLE);
BMO_elem_flag_enable(symm->bm, e_new, SYMM_OUTPUT_GEOM);
}
}
@@ -356,7 +356,7 @@ static int symm_poly_next_crossing(const Symm *symm,
}
static BMFace *symm_face_create_v(BMesh *bm, BMFace *example,
- BMVert **fv, BMEdge **fe, int len)
+ BMVert **fv, BMEdge **fe, int len)
{
BMFace *f_new;
int i;
@@ -365,11 +365,11 @@ static BMFace *symm_face_create_v(BMesh *bm, BMFace *example,
int j = (i + 1) % len;
fe[i] = BM_edge_exists(fv[i], fv[j]);
if (!fe[i]) {
- fe[i] = BM_edge_create(bm, fv[i], fv[j], NULL, FALSE);
+ fe[i] = BM_edge_create(bm, fv[i], fv[j], NULL, 0);
BMO_elem_flag_enable(bm, fe[i], SYMM_OUTPUT_GEOM);
}
}
- f_new = BM_face_create(bm, fv, fe, len, TRUE);
+ f_new = BM_face_create(bm, fv, fe, len, BM_CREATE_NO_DOUBLE);
if (example)
BM_elem_attrs_copy(bm, bm, example, f_new);
BM_face_select_set(bm, f_new, TRUE);
diff --git a/source/blender/bmesh/operators/bmo_utils.c b/source/blender/bmesh/operators/bmo_utils.c
index b88bc51f586..64dbf0cc0e7 100644
--- a/source/blender/bmesh/operators/bmo_utils.c
+++ b/source/blender/bmesh/operators/bmo_utils.c
@@ -47,7 +47,7 @@ void bmo_create_vert_exec(BMesh *bm, BMOperator *op)
BMO_slot_vec_get(op->slots_in, "co", vec);
- BMO_elem_flag_enable(bm, BM_vert_create(bm, vec, NULL), 1);
+ BMO_elem_flag_enable(bm, BM_vert_create(bm, vec, NULL, 0), 1);
BMO_slot_buffer_from_enabled_flag(bm, op, op->slots_out, "vert.out", BM_VERT, 1);
}
diff --git a/source/blender/bmesh/operators/bmo_wireframe.c b/source/blender/bmesh/operators/bmo_wireframe.c
index 532145ab129..7401704310f 100644
--- a/source/blender/bmesh/operators/bmo_wireframe.c
+++ b/source/blender/bmesh/operators/bmo_wireframe.c
@@ -227,9 +227,9 @@ void bmo_wireframe_exec(BMesh *bm, BMOperator *op)
}
madd_v3_v3v3fl(tvec, v_src->co, v_src->no, -fac);
- verts_neg[i] = BM_vert_create(bm, tvec, v_src);
+ verts_neg[i] = BM_vert_create(bm, tvec, v_src, 0);
madd_v3_v3v3fl(tvec, v_src->co, v_src->no, fac);
- verts_pos[i] = BM_vert_create(bm, tvec, v_src);
+ verts_pos[i] = BM_vert_create(bm, tvec, v_src, 0);
}
else {
/* could skip this */
@@ -267,7 +267,7 @@ void bmo_wireframe_exec(BMesh *bm, BMOperator *op)
}
madd_v3_v3v3fl(tvec, l->v->co, tvec, fac);
- verts_loop[verts_loop_tot] = BM_vert_create(bm, tvec, l->v);
+ verts_loop[verts_loop_tot] = BM_vert_create(bm, tvec, l->v, 0);
if (use_boundary) {
@@ -301,7 +301,7 @@ void bmo_wireframe_exec(BMesh *bm, BMOperator *op)
fac *= verts_relfac[BM_elem_index_get(l_pair[i]->v)];
}
madd_v3_v3v3fl(tvec, l_pair[i]->v->co, tvec, fac);
- verts_boundary[BM_elem_index_get(l_pair[i]->v)] = BM_vert_create(bm, tvec, l_pair[i]->v);
+ verts_boundary[BM_elem_index_get(l_pair[i]->v)] = BM_vert_create(bm, tvec, l_pair[i]->v, 0);
}
}
}