diff options
author | Sebastian Parborg <darkdefende@gmail.com> | 2020-09-21 17:07:24 +0300 |
---|---|---|
committer | Sebastian Parborg <darkdefende@gmail.com> | 2020-09-21 17:09:51 +0300 |
commit | e5a572157d8cd5947a0b4b7420e728d57d6965ff (patch) | |
tree | 40a2a32e27884983cad894c3d5c221a6c8f91179 /source/blender/editors/transform/transform_convert_mesh_uv.c | |
parent | 9d3550d7819807064dd39365322295ebd8ea0a09 (diff) |
Fix T80899: Crash on editing multiple UVs of multiple different objects at the same time
The issue was two fold.
First something sets the loop element tag and doesn't clear it before
the UV code in question tries to use the tags. Added a sanity clear to
make sure that it operates on a clean tag state.
The next one was that the UV maps in question had quite a few points
that had zero length UV loop edges. This would lead to division by
zero.
Reviewed By: Jeroen Bakker, Brecht
Differential Revision: http://developer.blender.org/D8967
Diffstat (limited to 'source/blender/editors/transform/transform_convert_mesh_uv.c')
-rw-r--r-- | source/blender/editors/transform/transform_convert_mesh_uv.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/source/blender/editors/transform/transform_convert_mesh_uv.c b/source/blender/editors/transform/transform_convert_mesh_uv.c index 92447c257da..b54c45e2ab2 100644 --- a/source/blender/editors/transform/transform_convert_mesh_uv.c +++ b/source/blender/editors/transform/transform_convert_mesh_uv.c @@ -301,6 +301,9 @@ void createTransUVs(bContext *C, TransInfo *t) BM_elem_flag_enable(efa, BM_ELEM_TAG); BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) { + /* Make sure that the loop element flag is cleared for when we use it in + * uv_set_connectivity_distance later. */ + BM_elem_flag_disable(l, BM_ELEM_TAG); if (uvedit_uv_select_test(scene, l, cd_loop_uv_offset)) { countsel++; |