[Bf-blender-cvs] [c4701a027fe] blender-v3.2-release: Fix T98558: island selection in UV editor can crash

Philipp Oeser noreply at git.blender.org
Fri Jun 3 05:14:40 CEST 2022


Commit: c4701a027fed83d2aea4f0f26a845e4d6852b1ff
Author: Philipp Oeser
Date:   Fri Jun 3 13:10:36 2022 +1000
Branches: blender-v3.2-release
https://developer.blender.org/rBc4701a027fed83d2aea4f0f26a845e4d6852b1ff

Fix T98558: island selection in UV editor can crash

Regression in [0]. When zoomed in, we can be within the face of an
island but too far from an edge, in this case
uv_find_nearest_face_multi_ex is used instead of
uv_find_nearest_edge_multi with the consequence that hit.l cannot be
used in uvedit_uv_select_test (it is NULL).

Instead, use uvedit_face_select_test instead in this case.

[0]: d356edf420ba13b3a544dcc598a0e31a36e1d86c

Reviewed By: campbellbarton

Ref D15100

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

M	source/blender/editors/uvedit/uvedit_select.c

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

diff --git a/source/blender/editors/uvedit/uvedit_select.c b/source/blender/editors/uvedit/uvedit_select.c
index 6405d2df66a..a999c9b491f 100644
--- a/source/blender/editors/uvedit/uvedit_select.c
+++ b/source/blender/editors/uvedit/uvedit_select.c
@@ -2493,8 +2493,15 @@ static bool uv_mouse_select_multi(bContext *C,
     else if (selectmode == UV_SELECT_EDGE) {
       is_selected = uvedit_edge_select_test(scene, hit.l, cd_loop_uv_offset);
     }
-    else { /* Vertex or island. */
-      is_selected = uvedit_uv_select_test(scene, hit.l, cd_loop_uv_offset);
+    else {
+      /* Vertex or island. For island (if we were using #uv_find_nearest_face_multi_ex, see above),
+       * `hit.l` is NULL, use `hit.efa` instead. */
+      if (hit.l != NULL) {
+        is_selected = uvedit_uv_select_test(scene, hit.l, cd_loop_uv_offset);
+      }
+      else {
+        is_selected = uvedit_face_select_test(scene, hit.efa, cd_loop_uv_offset);
+      }
     }
   }



More information about the Bf-blender-cvs mailing list