From 10354b043f2a6bee589bb85dd67cc51d7218595a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 12 Feb 2023 14:20:52 +1100 Subject: [PATCH] Fix crash selecting faces in wire-frame mode Regression in [0] didn't account for the mesh not having subdivision surface is applied. [0]: 75db4c082ba7bd3d311bd0f65b75934109199ee6 --- source/blender/editors/space_view3d/view3d_iterators.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/source/blender/editors/space_view3d/view3d_iterators.cc b/source/blender/editors/space_view3d/view3d_iterators.cc index 09ff3fa6574..08d5509bbe1 100644 --- a/source/blender/editors/space_view3d/view3d_iterators.cc +++ b/source/blender/editors/space_view3d/view3d_iterators.cc @@ -577,12 +577,13 @@ void mesh_foreachScreenFace( BM_mesh_elem_table_ensure(vc->em->bm, BM_FACE); - if (me->runtime->subsurf_face_dot_tags.size() == me->totvert) { - BKE_mesh_foreach_mapped_face_center( + const int face_dot_tags_num = me->runtime->subsurf_face_dot_tags.size(); + if (face_dot_tags_num && (face_dot_tags_num != me->totvert)) { + BKE_mesh_foreach_mapped_subdiv_face_center( me, mesh_foreachScreenFace__mapFunc, &data, MESH_FOREACH_NOP); } else { - BKE_mesh_foreach_mapped_subdiv_face_center( + BKE_mesh_foreach_mapped_face_center( me, mesh_foreachScreenFace__mapFunc, &data, MESH_FOREACH_NOP); } }