diff options
Diffstat (limited to 'source/blender/blenkernel/intern/modifier.c')
-rw-r--r-- | source/blender/blenkernel/intern/modifier.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c index 3caa3a032ff..42ebce44b07 100644 --- a/source/blender/blenkernel/intern/modifier.c +++ b/source/blender/blenkernel/intern/modifier.c @@ -1124,13 +1124,12 @@ struct DerivedMesh *modifier_applyModifier_DM_deprecated(struct ModifierData *md struct Mesh *new_mesh = mti->applyModifier(md, depsgraph, ob, mesh, flag); DerivedMesh *ndm = CDDM_from_mesh(new_mesh); - if(new_mesh != mesh) { - /* Make a DM that doesn't reference new_mesh so we can free the latter. */ - /* TODO(sybren): create CDDM_from_mesh_ex() that creates a copy directly. */ - DerivedMesh *nonref_dm = CDDM_copy(ndm); - ndm->release(ndm); - ndm = nonref_dm; + /* Make a DM that doesn't reference new_mesh so we can free the latter. */ + /* TODO(sybren): create CDDM_from_mesh_ex() that creates a copy directly. */ + DerivedMesh *nonref_dm = CDDM_copy(ndm); + ndm->release(ndm); + if(new_mesh != mesh) { BKE_mesh_free(new_mesh); MEM_freeN(new_mesh); } @@ -1139,7 +1138,7 @@ struct DerivedMesh *modifier_applyModifier_DM_deprecated(struct ModifierData *md MEM_freeN(mesh); } - return ndm; + return nonref_dm; } } |