From ea269c21eaf663cd74c1c54acdcc9b0a0b19d3d4 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 28 Feb 2014 20:02:30 +1100 Subject: Code cleanup: move edit-derivedmesh free to BKE_editmesh_free_derivedmesh --- source/blender/blenkernel/BKE_editmesh.h | 1 + source/blender/blenkernel/intern/DerivedMesh.c | 13 +------------ source/blender/blenkernel/intern/editmesh.c | 23 +++++++++++++---------- source/blender/editors/mesh/editmesh_utils.c | 11 +---------- 4 files changed, 16 insertions(+), 32 deletions(-) diff --git a/source/blender/blenkernel/BKE_editmesh.h b/source/blender/blenkernel/BKE_editmesh.h index 310807370da..38c8cf12969 100644 --- a/source/blender/blenkernel/BKE_editmesh.h +++ b/source/blender/blenkernel/BKE_editmesh.h @@ -87,6 +87,7 @@ void BKE_editmesh_tessface_calc(BMEditMesh *em); BMEditMesh *BKE_editmesh_create(BMesh *bm, const bool do_tessellate); BMEditMesh *BKE_editmesh_copy(BMEditMesh *em); BMEditMesh *BKE_editmesh_from_object(struct Object *ob); +void BKE_editmesh_free_derivedmesh(BMEditMesh *em); void BKE_editmesh_free(BMEditMesh *em); void BKE_editmesh_update_linked_customdata(BMEditMesh *em); diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index d7bdbb45752..4223e903113 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -2256,18 +2256,7 @@ static void editbmesh_build_data(Scene *scene, Object *obedit, BMEditMesh *em, C BKE_object_free_derived_caches(obedit); BKE_object_sculpt_modifiers_changed(obedit); - if (em->derivedFinal) { - if (em->derivedFinal != em->derivedCage) { - em->derivedFinal->needsFree = 1; - em->derivedFinal->release(em->derivedFinal); - } - em->derivedFinal = NULL; - } - if (em->derivedCage) { - em->derivedCage->needsFree = 1; - em->derivedCage->release(em->derivedCage); - em->derivedCage = NULL; - } + BKE_editmesh_free_derivedmesh(em); editbmesh_calc_modifiers(scene, obedit, em, &em->derivedCage, &em->derivedFinal, dataMask); DM_set_object_boundbox(obedit, em->derivedFinal); diff --git a/source/blender/blenkernel/intern/editmesh.c b/source/blender/blenkernel/intern/editmesh.c index 88cef0ec031..65faf59978a 100644 --- a/source/blender/blenkernel/intern/editmesh.c +++ b/source/blender/blenkernel/intern/editmesh.c @@ -187,21 +187,24 @@ void BKE_editmesh_update_linked_customdata(BMEditMesh *em) } } -/*does not free the BMEditMesh struct itself*/ -void BKE_editmesh_free(BMEditMesh *em) +void BKE_editmesh_free_derivedmesh(BMEditMesh *em) { - if (em->derivedFinal) { - if (em->derivedFinal != em->derivedCage) { - em->derivedFinal->needsFree = 1; - em->derivedFinal->release(em->derivedFinal); - } - em->derivedFinal = NULL; - } if (em->derivedCage) { em->derivedCage->needsFree = 1; em->derivedCage->release(em->derivedCage); - em->derivedCage = NULL; } + if (em->derivedFinal && em->derivedFinal != em->derivedCage) { + em->derivedFinal->needsFree = 1; + em->derivedFinal->release(em->derivedFinal); + } + + em->derivedCage = em->derivedFinal = NULL; +} + +/*does not free the BMEditMesh struct itself*/ +void BKE_editmesh_free(BMEditMesh *em) +{ + BKE_editmesh_free_derivedmesh(em); BKE_editmesh_color_free(em); diff --git a/source/blender/editors/mesh/editmesh_utils.c b/source/blender/editors/mesh/editmesh_utils.c index 9f70135b787..1d8e506fe85 100644 --- a/source/blender/editors/mesh/editmesh_utils.c +++ b/source/blender/editors/mesh/editmesh_utils.c @@ -132,16 +132,7 @@ void EDBM_mesh_clear(BMEditMesh *em) BM_mesh_clear(em->bm); /* free derived meshes */ - if (em->derivedCage) { - em->derivedCage->needsFree = 1; - em->derivedCage->release(em->derivedCage); - } - if (em->derivedFinal && em->derivedFinal != em->derivedCage) { - em->derivedFinal->needsFree = 1; - em->derivedFinal->release(em->derivedFinal); - } - - em->derivedCage = em->derivedFinal = NULL; + BKE_editmesh_free_derivedmesh(em); /* free tessellation data */ em->tottri = 0; -- cgit v1.2.3