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:
authorGermano Cavalcante <germano.costa@ig.com.br>2022-06-09 02:41:56 +0300
committerGermano Cavalcante <germano.costa@ig.com.br>2022-06-09 02:52:34 +0300
commit8a02696724ead723aae40f20613a709ca9fce056 (patch)
treeb16b8ad5a9477a5057e31aada01b5fd2e9ff9a7b
parent530f2abb9b0f2886925ac7bd8d0583e44eebb793 (diff)
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.
-rw-r--r--source/blender/editors/transform/transform_snap_object.cc6
1 files 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<SnapData_Mesh> sod_ptr = std::make_unique<SnapData_Mesh>();
sod = sod_ptr.get();