Commit: 6ce06957c9bf9c752f0a7ee2cb186948d0d67983 Author: Campbell Barton Date: Wed Feb 17 15:12:39 2021 +1100 Branches: blender-v2.92-release https://developer.blender.org/rB6ce06957c9bf9c752f0a7ee2cb186948d0d67983
Fix T85680: Crash displaying UV stretch/area with modifiers This uses the same logic as drawing UV's, where non-bmesh defaults to mesh. =================================================================== M source/blender/draw/intern/draw_cache_extract_mesh.c =================================================================== diff --git a/source/blender/draw/intern/draw_cache_extract_mesh.c b/source/blender/draw/intern/draw_cache_extract_mesh.c index 9e2ac26f9f0..40d7614f93f 100644 --- a/source/blender/draw/intern/draw_cache_extract_mesh.c +++ b/source/blender/draw/intern/draw_cache_extract_mesh.c @@ -3903,7 +3903,8 @@ static void mesh_stretch_area_finish(const MeshRenderData *mr, area_ratio[f] = area_ratio_get(area, uvarea); } } - else if (mr->extract_type == MR_EXTRACT_MAPPED) { + else { + BLI_assert(ELEM(mr->extract_type, MR_EXTRACT_MAPPED, MR_EXTRACT_MESH)); const MLoopUV *uv_data = CustomData_get_layer(&mr->me->ldata, CD_MLOOPUV); const MPoly *mp = mr->mpoly; for (int mp_index = 0; mp_index < mr->poly_len; mp_index++, mp++) { @@ -3914,10 +3915,6 @@ static void mesh_stretch_area_finish(const MeshRenderData *mr, area_ratio[mp_index] = area_ratio_get(area, uvarea); } } - else { - /* Should not happen. */ - BLI_assert(0); - } cache->tot_area = tot_area; cache->tot_uv_area = tot_uv_area; @@ -3942,7 +3939,8 @@ static void mesh_stretch_area_finish(const MeshRenderData *mr, } } } - else if (mr->extract_type == MR_EXTRACT_MAPPED) { + else { + BLI_assert(ELEM(mr->extract_type, MR_EXTRACT_MAPPED, MR_EXTRACT_MESH)); const MPoly *mp = mr->mpoly; for (int mp_index = 0, l_index = 0; mp_index < mr->poly_len; mp_index++, mp++) { for (int i = 0; i < mp->totloop; i++, l_index++) { @@ -3950,10 +3948,6 @@ static void mesh_stretch_area_finish(const MeshRenderData *mr, } } } - else { - /* Should not happen. */ - BLI_assert(0); - } MEM_freeN(area_ratio); } @@ -4047,11 +4041,9 @@ static void *extract_stretch_angle_init(const MeshRenderData *mr, if (mr->extract_type == MR_EXTRACT_BMESH) { data->cd_ofs = CustomData_get_offset(&mr->bm->ldata, CD_MLOOPUV); } - else if (mr->extract_type == MR_EXTRACT_MAPPED) { - data->luv = CustomData_get_layer(&mr->me->ldata, CD_MLOOPUV); - } else { - BLI_assert(0); + BLI_assert(ELEM(mr->extract_type, MR_EXTRACT_MAPPED, MR_EXTRACT_MESH)); + data->luv = CustomData_get_layer(&mr->me->ldata, CD_MLOOPUV); } return data; } _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs