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:
authorSybren A. Stüvel <sybren@stuvel.eu>2019-04-11 16:03:08 +0300
committerSybren A. Stüvel <sybren@stuvel.eu>2019-04-11 17:22:55 +0300
commit0576f4ca9b41f1f0e7dfdd896e539488419306ff (patch)
tree4349044db3dc7169f7086968b0defdc4a0d3554f /source/blender/alembic/intern/abc_mesh.cc
parent7509d0bbf1f24e0c6ac519f807d4210c9befe94f (diff)
Fix T62664: Exporting Metaballs as Alembic crashes Blender
The `AbcMetaballWriter` now subclasses `AbcGenericMeshWriter` instead of wrapping an `AbcMeshWriter`. `AbcGenericMeshWriter` was created for this purpose (writing non-mesh objects as mesh to Alembic) and performs the work in a cleaner and, more importantly, not crashing way.
Diffstat (limited to 'source/blender/alembic/intern/abc_mesh.cc')
-rw-r--r--source/blender/alembic/intern/abc_mesh.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/source/blender/alembic/intern/abc_mesh.cc b/source/blender/alembic/intern/abc_mesh.cc
index 2472fe1945f..97cd6ffc0e3 100644
--- a/source/blender/alembic/intern/abc_mesh.cc
+++ b/source/blender/alembic/intern/abc_mesh.cc
@@ -387,14 +387,19 @@ void AbcGenericMeshWriter::do_write()
writeMesh(mesh);
}
- if (needsfree) BKE_id_free(NULL, mesh);
+ if (needsfree) freeEvaluatedMesh(mesh);
}
catch (...) {
- if (needsfree) BKE_id_free(NULL, mesh);
+ if (needsfree) freeEvaluatedMesh(mesh);
throw;
}
}
+void AbcGenericMeshWriter::freeEvaluatedMesh(struct Mesh *mesh)
+{
+ BKE_id_free(NULL, mesh);
+}
+
void AbcGenericMeshWriter::writeMesh(struct Mesh *mesh)
{
std::vector<Imath::V3f> points, normals;