From 8a02696724ead723aae40f20613a709ca9fce056 Mon Sep 17 00:00:00 2001 From: Germano Cavalcante Date: Wed, 8 Jun 2022 20:41:56 -0300 Subject: 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. --- source/blender/editors/transform/transform_snap_object.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 sod_ptr = std::make_unique(); sod = sod_ptr.get(); -- cgit v1.2.3