commit 4bdca157e7edfeb5b9c0ac77e3afbfe288f7f9cf
Author: Stefan Zager <szager@chromium.org>
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 <szager@chromium.org>
    Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
    Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1265024}

--- a/third_party/blink/renderer/platform/fonts/shaping/shape_result.cc
+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result.cc
@@ -78,13 +78,10 @@ struct SameSizeAsRunInfo {
 ASSERT_SIZE(ShapeResult::RunInfo, SameSizeAsRunInfo);
 
 struct SameSizeAsShapeResult {
+  Vector<int> vectors[2];
+  UntracedMember<void*> members[2];
   float width;
-  UntracedMember<void*> deprecated_ink_bounds_;
-  Vector<int> runs_;
-  Vector<int> character_position_;
-  UntracedMember<void*> primary_font_;
-  unsigned start_index_;
-  unsigned num_characters_;
+  unsigned integers[2];
   unsigned bitfields : 32;
 };
 
