commit 4bdca157e7edfeb5b9c0ac77e3afbfe288f7f9cf Author: Stefan Zager Date: Mon Feb 26 02:36:37 2024 +0000 Make SameSizeAsShapeResult robust against uncommon gn args When using uncommon build configurations, it's currently possible to fail this assert due to details of struct field packing: ASSERT_SIZE(ShapeResult, SameSizeAsShapeResult); In particular, `cppgc_enable_pointer_compression = false` in args.gn will trigger it. This changes makes the struct layout of SameSizeAsShapeResult more closely match that of ShapeResult, which should make it harder to fail the assert. Change-Id: I7406b0ac333303b6808807fa1eaf5cbecb85d858 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5323558 Auto-Submit: Stefan Zager Reviewed-by: Ian Kilpatrick Commit-Queue: Ian Kilpatrick Cr-Commit-Position: refs/heads/main@{#1265024} diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result.cc b/third_party/blink/renderer/platform/fonts/shaping/shape_result.cc index 28aabc7d66cd8..a2bfdec2775e4 100644 --- a/third_party/blink/renderer/platform/fonts/shaping/shape_result.cc +++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result.cc @@ -78,10 +78,13 @@ struct SameSizeAsRunInfo { ASSERT_SIZE(ShapeResult::RunInfo, SameSizeAsRunInfo); struct SameSizeAsShapeResult { - Vector vectors[2]; - UntracedMember members[2]; float width; - unsigned integers[2]; + UntracedMember deprecated_ink_bounds_; + Vector runs_; + Vector character_position_; + UntracedMember primary_font_; + unsigned start_index_; + unsigned num_characters_; unsigned bitfields : 32; };