diff options
author | Campbell Barton <ideasman42@gmail.com> | 2020-06-24 15:09:40 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2020-06-24 15:13:27 +0300 |
commit | dd328be0f08bc79125f9bc862d814e49c213b2f3 (patch) | |
tree | 8a9251ced6d07ad353ee58da2000adee29468d20 /source/blender/blenkernel/intern/DerivedMesh.c | |
parent | 074929d1c5f5b0e9a4da3c3058cc9f3038fb2910 (diff) |
Fix memory leak calculating deform modifiers in edit-mode
This bug goes back to 2.80 but doesn't seem to have been reported.
Diffstat (limited to 'source/blender/blenkernel/intern/DerivedMesh.c')
-rw-r--r-- | source/blender/blenkernel/intern/DerivedMesh.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index b4e2cd772c9..8a5be6b9cb3 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -1669,7 +1669,9 @@ static void editbmesh_calc_modifiers(struct Depsgraph *depsgraph, else { Mesh *me_orig = mesh_input; if (me_orig->id.tag & LIB_TAG_COPIED_ON_WRITE) { - BKE_mesh_runtime_ensure_edit_data(me_orig); + if (!BKE_mesh_runtime_ensure_edit_data(me_orig)) { + BKE_mesh_runtime_reset_edit_data(me_orig); + } me_orig->runtime.edit_data->vertexCos = MEM_dupallocN(deformed_verts); } mesh_cage = BKE_mesh_wrapper_from_editmesh_with_coords( |