From 699cefefd0093e12ca15c5430f73725e9f0d0113 Mon Sep 17 00:00:00 2001 From: Germano Cavalcante Date: Wed, 29 Jul 2020 19:17:56 -0300 Subject: Fix ghash return value on 'Correct Face Attributes' with 'Keep Connect' The result was somewhat unpredictable. This error was recently introduced. --- source/blender/editors/transform/transform_convert_mesh.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/source/blender/editors/transform/transform_convert_mesh.c b/source/blender/editors/transform/transform_convert_mesh.c index 451903f1857..e4960e1ec71 100644 --- a/source/blender/editors/transform/transform_convert_mesh.c +++ b/source/blender/editors/transform/transform_convert_mesh.c @@ -1094,10 +1094,11 @@ static BMFace *mesh_customdatacorrect_face_substitute_get(BMFace *f_copy) #endif /* USE_FACE_SUBSTITUTE */ static void mesh_customdatacorrect_init_vert(struct TransCustomDataLayer *tcld, - BMVert *v, + struct TransDataBasic *td, const int index) { BMesh *bm = tcld->bm; + BMVert *v = td->extra; BMIter liter; int j, l_num; float *loop_weights; @@ -1149,7 +1150,7 @@ static void mesh_customdatacorrect_init_vert(struct TransCustomDataLayer *tcld, merge_data->cd_loop_groups = NULL; } - BLI_ghash_insert(tcld->merge_group.origverts, v, merge_data); + BLI_ghash_insert(tcld->merge_group.origverts, v, td); } } @@ -1243,14 +1244,12 @@ static void mesh_customdatacorrect_init_container(TransDataContainer *tc, TransData *tob = tc->data; for (int j = tc->data_len; j--; tob++, i++) { - BMVert *v = tob->extra; - mesh_customdatacorrect_init_vert(tcld, v, i); + mesh_customdatacorrect_init_vert(tcld, (TransDataBasic *)tob, i); } TransDataMirror *td_mirror = tc->data_mirror; for (int j = tc->data_mirror_len; j--; td_mirror++, i++) { - BMVert *v = td_mirror->extra; - mesh_customdatacorrect_init_vert(tcld, v, i); + mesh_customdatacorrect_init_vert(tcld, (TransDataBasic *)td_mirror, i); } } -- cgit v1.2.3