[Bf-blender-cvs] [2b12b4cd7dc] blender-v3.0-release: Fix: make sure geometry owns mesh before taking ownership

Jacques Lucke noreply at git.blender.org
Wed Nov 3 10:46:04 CET 2021


Commit: 2b12b4cd7dccfa51cec53d5ae885a2142563fb17
Author: Jacques Lucke
Date:   Wed Nov 3 10:42:48 2021 +0100
Branches: blender-v3.0-release
https://developer.blender.org/rB2b12b4cd7dccfa51cec53d5ae885a2142563fb17

Fix: make sure geometry owns mesh before taking ownership

Differential Revision: https://developer.blender.org/D13075

===================================================================

M	source/blender/blenkernel/intern/DerivedMesh.cc

===================================================================

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();
     }



More information about the Bf-blender-cvs mailing list