diff options
author | Sybren A. Stüvel <sybren@stuvel.eu> | 2019-01-15 18:14:05 +0300 |
---|---|---|
committer | Sybren A. Stüvel <sybren@stuvel.eu> | 2019-01-15 18:21:04 +0300 |
commit | 9fed39c7b0e21d46a65ddc08b806f686ec2706dd (patch) | |
tree | 3f62a96cbf7e5ed4863dfb754e90a363afe49dc7 /source/blender/alembic/intern/abc_mesh.cc | |
parent | 2124f3107c4ed6490a92771f6bd7c452a3c98627 (diff) |
Alembic export: fixed memory leak
If the triangulated mesh was in itself a new mesh that should be freed this
should happen before the function returns (as it only returns a single mesh,
and thus the caller can only free one).
Diffstat (limited to 'source/blender/alembic/intern/abc_mesh.cc')
-rw-r--r-- | source/blender/alembic/intern/abc_mesh.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/source/blender/alembic/intern/abc_mesh.cc b/source/blender/alembic/intern/abc_mesh.cc index 50698ef728e..9cc5edc505b 100644 --- a/source/blender/alembic/intern/abc_mesh.cc +++ b/source/blender/alembic/intern/abc_mesh.cc @@ -550,6 +550,10 @@ Mesh *AbcMeshWriter::getFinalMesh(bool &r_needsfree) Mesh *result = BKE_mesh_from_bmesh_for_eval_nomain(bm, 0); BM_mesh_free(bm); + if (r_needsfree) { + BKE_id_free(NULL, mesh); + } + mesh = result; r_needsfree = true; } |