diff --git a/gfx/thebes/gfxTypes.h b/gfx/thebes/gfxTypes.h --- a/gfx/thebes/gfxTypes.h +++ b/gfx/thebes/gfxTypes.h @@ -10,7 +10,7 @@ #include "mozilla/TypedEnumBits.h" namespace mozilla { -enum class StyleGenericFontFamily : uint8_t; +enum class StyleGenericFontFamily : uint32_t; } typedef struct _cairo_surface cairo_surface_t; diff --git a/servo/components/style/values/computed/font.rs b/servo/components/style/values/computed/font.rs --- a/servo/components/style/values/computed/font.rs +++ b/servo/components/style/values/computed/font.rs @@ -382,6 +382,10 @@ /// The order here is important, if you change it make sure that /// `gfxPlatformFontList.h`s ranged array and `gfxFontFamilyList`'s /// sSingleGenerics are updated as well. +/// +/// NOTE(emilio): Should be u8, but it's a u32 because of ABI issues between GCC +/// and LLVM see https://bugs.llvm.org/show_bug.cgi?id=44228 / bug 1600735 / +/// bug 1726515. #[derive( Clone, Copy, @@ -397,7 +401,7 @@ ToShmem, )] #[cfg_attr(feature = "servo", derive(Deserialize, Serialize))] -#[repr(u8)] +#[repr(u32)] #[allow(missing_docs)] pub enum GenericFontFamily { /// No generic family specified, only for internal usage.