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>2015-11-05 11:07:22 +0300
committerCampbell Barton <ideasman42@gmail.com>2015-11-05 11:07:22 +0300
commit534c0af4d39f692c1ee3eb7116c2b5fe909bc134 (patch)
tree373d4188e7a0d37ca887f26b8909cee94f3fa44a
parent23344bca6c5d1de330169a04ed8d21145fc60053 (diff)
Fix BMesh memory leak w/ multires data
-rw-r--r--source/blender/bmesh/intern/bmesh_core.c3
-rw-r--r--source/blender/bmesh/operators/bmo_inset.c2
2 files changed, 5 insertions, 0 deletions
diff --git a/source/blender/bmesh/intern/bmesh_core.c b/source/blender/bmesh/intern/bmesh_core.c
index dfa78f611c4..4e178686144 100644
--- a/source/blender/bmesh/intern/bmesh_core.c
+++ b/source/blender/bmesh/intern/bmesh_core.c
@@ -247,6 +247,9 @@ static BMLoop *bm_loop_create(
if (!(create_flag & BM_CREATE_SKIP_CD)) {
if (l_example) {
+ /* no need to copy attrs, just handle customdata */
+ // BM_elem_attrs_copy(bm, bm, l_example, l);
+ CustomData_bmesh_free_block_data(&bm->ldata, l->head.data);
CustomData_bmesh_copy_data(&bm->ldata, &bm->ldata, l_example->head.data, &l->head.data);
}
else {
diff --git a/source/blender/bmesh/operators/bmo_inset.c b/source/blender/bmesh/operators/bmo_inset.c
index 118a19d3082..7bdf7db69ad 100644
--- a/source/blender/bmesh/operators/bmo_inset.c
+++ b/source/blender/bmesh/operators/bmo_inset.c
@@ -1095,6 +1095,8 @@ void bmo_inset_region_exec(BMesh *bm, BMOperator *op)
InterpFace *iface = iface_array[BM_elem_index_get(es->l->f)];
const int i_a = BM_elem_index_get(l_a_other);
const int i_b = BM_elem_index_get(l_b_other);
+ CustomData_bmesh_free_block_data(&bm->ldata, l_b->head.data);
+ CustomData_bmesh_free_block_data(&bm->ldata, l_a->head.data);
CustomData_bmesh_copy_data(&bm->ldata, &bm->ldata, iface->blocks_l[i_a], &l_b->head.data);
CustomData_bmesh_copy_data(&bm->ldata, &bm->ldata, iface->blocks_l[i_b], &l_a->head.data);