diff options
author | Jacques Lucke <jacques@blender.org> | 2021-11-03 12:42:48 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2021-11-03 12:42:48 +0300 |
commit | 2b12b4cd7dccfa51cec53d5ae885a2142563fb17 (patch) | |
tree | 161fd3d7e923b1e7d3ac5143b3bf85044cd71108 /source/blender/blenkernel | |
parent | 68759625b113cb190e96024fec5f397da61be0d0 (diff) |
Fix: make sure geometry owns mesh before taking ownership
Differential Revision: https://developer.blender.org/D13075
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/intern/DerivedMesh.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/DerivedMesh.cc b/source/blender/blenkernel/intern/DerivedMesh.cc index 3ec0ab9c512..4b1332d5b84 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.cc +++ b/source/blender/blenkernel/intern/DerivedMesh.cc @@ -921,6 +921,10 @@ static Mesh *modifier_modify_mesh_and_geometry_set(ModifierData *md, /* Release the mesh from the geometry set again. */ if (geometry_set.has<MeshComponent>()) { MeshComponent &mesh_component = geometry_set.get_component_for_write<MeshComponent>(); + if (mesh_component.get_for_read() != input_mesh) { + /* Make sure the mesh component actually owns the mesh before taking over ownership. */ + mesh_component.ensure_owns_direct_data(); + } mesh_output = mesh_component.release(); } |