diff options
author | Joseph Eagar <joeedh@gmail.com> | 2022-05-15 11:46:42 +0300 |
---|---|---|
committer | Joseph Eagar <joeedh@gmail.com> | 2022-05-15 11:46:42 +0300 |
commit | dcaaa5b6f4cc81182ad05566867163073e5ae815 (patch) | |
tree | f016b8e4fcb555ddd8c5d33d5981bf1d0308b99d /source/blender/bmesh/intern | |
parent | a46f34d9b33b258126556e71a749e34cf2637abc (diff) | |
parent | b54abd7ede6ab1089f8733b1e35a290b7ad2f169 (diff) |
Merge branch 'blender-v3.2-release'
Diffstat (limited to 'source/blender/bmesh/intern')
-rw-r--r-- | source/blender/bmesh/intern/bmesh_log.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/source/blender/bmesh/intern/bmesh_log.c b/source/blender/bmesh/intern/bmesh_log.c index a398f14b312..a55eb74285d 100644 --- a/source/blender/bmesh/intern/bmesh_log.c +++ b/source/blender/bmesh/intern/bmesh_log.c @@ -288,6 +288,8 @@ static void bm_log_verts_restore(BMesh *bm, BMLog *log, GHash *verts) static void bm_log_faces_restore(BMesh *bm, BMLog *log, GHash *faces) { GHashIterator gh_iter; + const int cd_face_sets = CustomData_get_offset(&bm->pdata, CD_SCULPT_FACE_SETS); + GHASH_ITER (gh_iter, faces) { void *key = BLI_ghashIterator_getKey(&gh_iter); BMLogFace *lf = BLI_ghashIterator_getValue(&gh_iter); @@ -301,6 +303,11 @@ static void bm_log_faces_restore(BMesh *bm, BMLog *log, GHash *faces) f = BM_face_create_verts(bm, v, 3, NULL, BM_CREATE_NOP, true); f->head.hflag = lf->hflag; bm_log_face_id_set(log, f, POINTER_AS_UINT(key)); + + /* Ensure face sets have valid values. Fixes T80174. */ + if (cd_face_sets != -1) { + BM_ELEM_CD_SET_INT(f, cd_face_sets, 1); + } } } |