diff options
author | Germano Cavalcante <germano.costa@ig.com.br> | 2020-07-30 01:17:56 +0300 |
---|---|---|
committer | Germano Cavalcante <germano.costa@ig.com.br> | 2020-07-30 01:17:56 +0300 |
commit | 699cefefd0093e12ca15c5430f73725e9f0d0113 (patch) | |
tree | 503c2dac19b98498669d7e3787609e15ca8127f6 | |
parent | 81ce8481b2eb2c1e9c58f88f3744111f222c4475 (diff) |
Fix ghash return value on 'Correct Face Attributes' with 'Keep Connect'
The result was somewhat unpredictable.
This error was recently introduced.
-rw-r--r-- | source/blender/editors/transform/transform_convert_mesh.c | 11 |
1 files 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); } } |