[Bf-blender-cvs] [8a02696724e] master: Fix assert triggered when snapping to evaluated geometry of a Curve

Germano Cavalcante noreply at git.blender.org
Thu Jun 9 01:53:05 CEST 2022


Commit: 8a02696724ead723aae40f20613a709ca9fce056
Author: Germano Cavalcante
Date:   Wed Jun 8 20:41:56 2022 -0300
Branches: master
https://developer.blender.org/rB8a02696724ead723aae40f20613a709ca9fce056

Fix assert triggered when snapping to evaluated geometry of a Curve

Curves can have a Mesh evaluated, but only objects of type Mesh have
EditMesh.

This bug is harmless because `sctx->editmesh_caches.remove(value)` only
works with pointers and `BKE_editmesh_from_object(ob_eval)`, even though
it doesn't actually return a `BMEditMesh`, it still returns a pointer
that doesn't exist as a key.

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

M	source/blender/editors/transform/transform_snap_object.cc

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

diff --git a/source/blender/editors/transform/transform_snap_object.cc b/source/blender/editors/transform/transform_snap_object.cc
index b5b4489ccb5..40d1714f94f 100644
--- a/source/blender/editors/transform/transform_snap_object.cc
+++ b/source/blender/editors/transform/transform_snap_object.cc
@@ -283,8 +283,10 @@ static SnapData_Mesh *snap_object_data_mesh_get(SnapObjectContext *sctx,
     }
   }
   else {
-    /* Any existing #SnapData_EditMesh is now invalid. */
-    sctx->editmesh_caches.remove(BKE_editmesh_from_object(ob_eval));
+    if (ob_eval->type == OB_MESH) {
+      /* Any existing #SnapData_EditMesh is now invalid. */
+      sctx->editmesh_caches.remove(BKE_editmesh_from_object(ob_eval));
+    }
 
     std::unique_ptr<SnapData_Mesh> sod_ptr = std::make_unique<SnapData_Mesh>();
     sod = sod_ptr.get();



More information about the Bf-blender-cvs mailing list