From 4d9dd4b757ee73025d40b94144735ccbdbea73e5 Mon Sep 17 00:00:00 2001 From: Cameron McCormack Date: Fri, 29 Sep 2017 17:43:22 +0800 Subject: [PATCH 1/2] style: Use a SharedFontList object to store font-family values for Gecko. --- components/gfx/font_context.rs | 2 +- components/script/dom/element.rs | 5 +- .../style/gecko_bindings/sugar/refptr.rs | 3 + components/style/properties/gecko.mako.rs | 78 ++---- .../style/properties/longhand/font.mako.rs | 241 ++++++++++++++++-- ports/geckolib/glue.rs | 2 +- 6 files changed, 242 insertions(+), 89 deletions(-) diff --git a/components/gfx/font_context.rs b/components/gfx/font_context.rs index 7c0b36800c2..b5d2298d1f7 100644 --- a/components/gfx/font_context.rs +++ b/components/gfx/font_context.rs @@ -135,7 +135,7 @@ impl FontContext { let mut fonts: SmallVec<[Rc>; 8]> = SmallVec::new(); - for family in &style.font_family.0 { + for family in style.font_family.0.iter() { // GWTODO: Check on real pages if this is faster as Vec() or HashMap(). let mut cache_hit = false; for cached_font_entry in &self.layout_font_cache { diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index 67e9057c397..3e8dd5f95b3 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -554,9 +554,10 @@ impl LayoutElementHelpers for LayoutDom { hints.push(from_declaration( shared_lock, PropertyDeclaration::FontFamily( - font_family::SpecifiedValue::Values(vec![ + font_family::SpecifiedValue::Values( + font_family::computed_value::FontFamilyList::new(vec![ font_family::computed_value::FontFamily::from_atom( - font_family)])))); + font_family)]))))); } let font_size = self.downcast::().and_then(|this| this.get_size()); diff --git a/components/style/gecko_bindings/sugar/refptr.rs b/components/style/gecko_bindings/sugar/refptr.rs index d27ef7205d4..adee2e8ea57 100644 --- a/components/style/gecko_bindings/sugar/refptr.rs +++ b/components/style/gecko_bindings/sugar/refptr.rs @@ -286,4 +286,7 @@ impl_threadsafe_refcount!(::gecko_bindings::structs::mozilla::css::GridTemplateA impl_threadsafe_refcount!(::gecko_bindings::structs::ImageValue, Gecko_AddRefImageValueArbitraryThread, Gecko_ReleaseImageValueArbitraryThread); +impl_threadsafe_refcount!(::gecko_bindings::structs::SharedFontList, + Gecko_AddRefSharedFontListArbitraryThread, + Gecko_ReleaseSharedFontListArbitraryThread); diff --git a/components/style/properties/gecko.mako.rs b/components/style/properties/gecko.mako.rs index 9b55a1f6273..9501cf0e839 100644 --- a/components/style/properties/gecko.mako.rs +++ b/components/style/properties/gecko.mako.rs @@ -25,9 +25,6 @@ use gecko_bindings::bindings::Gecko_CopyFontFamilyFrom; use gecko_bindings::bindings::Gecko_CopyImageValueFrom; use gecko_bindings::bindings::Gecko_CopyListStyleImageFrom; use gecko_bindings::bindings::Gecko_EnsureImageLayersLength; -use gecko_bindings::bindings::Gecko_FontFamilyList_AppendGeneric; -use gecko_bindings::bindings::Gecko_FontFamilyList_AppendNamed; -use gecko_bindings::bindings::Gecko_FontFamilyList_Clear; use gecko_bindings::bindings::Gecko_SetCursorArrayLength; use gecko_bindings::bindings::Gecko_SetCursorImageValue; use gecko_bindings::bindings::Gecko_StyleTransition_SetUnsupportedProperty; @@ -2035,28 +2032,11 @@ fn static_assert() { } pub fn set_font_family(&mut self, v: longhands::font_family::computed_value::T) { - use properties::longhands::font_family::computed_value::{FontFamily, FamilyNameSyntax}; - - let list = &mut self.gecko.mFont.fontlist; - unsafe { Gecko_FontFamilyList_Clear(list); } - self.gecko.mGenericID = structs::kGenericFont_NONE; - - for family in &v.0 { - match *family { - FontFamily::FamilyName(ref f) => { - let quoted = matches!(f.syntax, FamilyNameSyntax::Quoted); - unsafe { Gecko_FontFamilyList_AppendNamed(list, f.name.as_ptr(), quoted); } - } - FontFamily::Generic(ref name) => { - let (family_type, generic) = FontFamily::generic(name); - if v.0.len() == 1 { - self.gecko.mGenericID = generic; - } - unsafe { Gecko_FontFamilyList_AppendGeneric(list, family_type); } - } - } + if let Some(generic) = v.0.single_generic() { + self.gecko.mGenericID = generic; } + self.gecko.mFont.fontlist.mFontlist.mBasePtr.set_move((v.0).0.clone()); } pub fn font_family_count(&self) -> usize { @@ -2078,46 +2058,28 @@ fn static_assert() { } pub fn clone_font_family(&self) -> longhands::font_family::computed_value::T { - use cssparser::serialize_identifier; - use properties::longhands::font_family::computed_value::{FontFamily, FamilyName, FamilyNameSyntax}; use gecko_bindings::structs::FontFamilyType; - use gecko_string_cache::Atom; + use properties::longhands::font_family::computed_value; + use properties::longhands::font_family::computed_value::FontFamily; + use properties::longhands::font_family::computed_value::FontFamilyList; - if self.gecko.mFont.fontlist.mFontlist.is_empty() { - let default = match self.gecko.mFont.fontlist.mDefaultFontType { - FontFamilyType::eFamily_serif => FontFamily::Generic(atom!("serif")), - FontFamilyType::eFamily_sans_serif => FontFamily::Generic(atom!("sans-serif")), + let fontlist = &self.gecko.mFont.fontlist; + let shared_fontlist = unsafe { fontlist.mFontlist.mBasePtr.to_safe() }; + + if shared_fontlist.mNames.is_empty() { + let default = match fontlist.mDefaultFontType { + FontFamilyType::eFamily_serif => { + FontFamily::Generic(atom!("serif")) + } + FontFamilyType::eFamily_sans_serif => { + FontFamily::Generic(atom!("sans-serif")) + } _ => panic!("Default generic must be serif or sans-serif"), }; - return longhands::font_family::computed_value::T(vec![default]); + computed_value::T(FontFamilyList::new(vec![default])) + } else { + computed_value::T(FontFamilyList(shared_fontlist)) } - - longhands::font_family::computed_value::T( - self.gecko.mFont.fontlist.mFontlist.iter().map(|gecko_font_family_name| { - match gecko_font_family_name.mType { - FontFamilyType::eFamily_serif => FontFamily::Generic(atom!("serif")), - FontFamilyType::eFamily_sans_serif => FontFamily::Generic(atom!("sans-serif")), - FontFamilyType::eFamily_monospace => FontFamily::Generic(atom!("monospace")), - FontFamilyType::eFamily_cursive => FontFamily::Generic(atom!("cursive")), - FontFamilyType::eFamily_fantasy => FontFamily::Generic(atom!("fantasy")), - FontFamilyType::eFamily_moz_fixed => FontFamily::Generic(Atom::from("-moz-fixed")), - FontFamilyType::eFamily_named => { - let name = Atom::from(&*gecko_font_family_name.mName); - let mut serialization = String::new(); - serialize_identifier(&name.to_string(), &mut serialization).unwrap(); - FontFamily::FamilyName(FamilyName { - name: name.clone(), - syntax: FamilyNameSyntax::Identifiers(serialization), - }) - }, - FontFamilyType::eFamily_named_quoted => FontFamily::FamilyName(FamilyName { - name: (&*gecko_font_family_name.mName).into(), - syntax: FamilyNameSyntax::Quoted, - }), - x => panic!("Found unexpected font FontFamilyType: {:?}", x), - } - }).collect() - ) } pub fn unzoom_fonts(&mut self, device: &Device) { diff --git a/components/style/properties/longhand/font.mako.rs b/components/style/properties/longhand/font.mako.rs index 9cbfd2d088e..ac35c271ec2 100644 --- a/components/style/properties/longhand/font.mako.rs +++ b/components/style/properties/longhand/font.mako.rs @@ -68,20 +68,27 @@ macro_rules! impl_gecko_keyword_conversions { } -<%helpers:longhand name="font-family" animation_value_type="discrete" boxed="${product == 'gecko'}" +<%helpers:longhand name="font-family" animation_value_type="discrete" flags="APPLIES_TO_FIRST_LETTER APPLIES_TO_FIRST_LINE APPLIES_TO_PLACEHOLDER" spec="https://drafts.csswg.org/css-fonts/#propdef-font-family"> + #[cfg(feature = "gecko")] use gecko_bindings::bindings; + #[cfg(feature = "gecko")] use malloc_size_of::{MallocSizeOf, MallocSizeOfOps}; use properties::longhands::system_font::SystemFont; - use self::computed_value::{FontFamily, FamilyName}; + use self::computed_value::{FontFamily, FontFamilyList, FamilyName}; use std::fmt; use style_traits::ToCss; pub mod computed_value { use cssparser::{CssStringWriter, Parser, serialize_identifier}; + #[cfg(feature = "gecko")] use gecko_bindings::{bindings, structs}; + #[cfg(feature = "gecko")] use gecko_bindings::sugar::refptr::RefPtr; + #[cfg(feature = "gecko")] use malloc_size_of::{MallocSizeOf, MallocSizeOfOps}; use std::fmt::{self, Write}; - use Atom; + #[cfg(feature = "gecko")] use std::hash::{Hash, Hasher}; + #[cfg(feature = "servo")] use std::slice; use style_traits::{ToCss, ParseError}; + use Atom; pub use self::FontFamily as SingleComputedValue; #[derive(Clone, Debug, Eq, Hash, PartialEq)] @@ -223,8 +230,8 @@ macro_rules! impl_gecko_keyword_conversions { #[cfg(feature = "gecko")] /// Return the generic ID for a given generic font name - pub fn generic(name: &Atom) -> (::gecko_bindings::structs::FontFamilyType, u8) { - use gecko_bindings::structs::{self, FontFamilyType}; + pub fn generic(name: &Atom) -> (structs::FontFamilyType, u8) { + use gecko_bindings::structs::FontFamilyType; if *name == atom!("serif") { (FontFamilyType::eFamily_serif, structs::kGenericFont_serif) @@ -247,6 +254,34 @@ macro_rules! impl_gecko_keyword_conversions { panic!("Unknown generic {}", name); } } + + #[cfg(feature = "gecko")] + fn from_font_family_name(family: &structs::FontFamilyName) -> FontFamily { + use gecko_bindings::structs::FontFamilyType; + + match family.mType { + FontFamilyType::eFamily_serif => FontFamily::Generic(atom!("serif")), + FontFamilyType::eFamily_sans_serif => FontFamily::Generic(atom!("sans-serif")), + FontFamilyType::eFamily_monospace => FontFamily::Generic(atom!("monospace")), + FontFamilyType::eFamily_cursive => FontFamily::Generic(atom!("cursive")), + FontFamilyType::eFamily_fantasy => FontFamily::Generic(atom!("fantasy")), + FontFamilyType::eFamily_moz_fixed => FontFamily::Generic(Atom::from("-moz-fixed")), + FontFamilyType::eFamily_named => { + let name = Atom::from(&*family.mName); + let mut serialization = String::new(); + serialize_identifier(&name.to_string(), &mut serialization).unwrap(); + FontFamily::FamilyName(FamilyName { + name: name.clone(), + syntax: FamilyNameSyntax::Identifiers(serialization), + }) + }, + FontFamilyType::eFamily_named_quoted => FontFamily::FamilyName(FamilyName { + name: (&*family.mName).into(), + syntax: FamilyNameSyntax::Quoted, + }), + x => panic!("Found unexpected font FontFamilyType: {:?}", x), + } + } } impl ToCss for FamilyName { @@ -298,15 +333,156 @@ macro_rules! impl_gecko_keyword_conversions { } } + #[cfg(feature = "servo")] + #[derive(Clone, Debug, Eq, Hash, HeapSizeOf, PartialEq)] + pub struct FontFamilyList(Vec); + + #[cfg(feature = "gecko")] + #[derive(Clone, Debug)] + pub struct FontFamilyList(pub RefPtr); + + #[cfg(feature = "gecko")] + impl Hash for FontFamilyList { + fn hash(&self, state: &mut H) where H: Hasher { + for name in self.0.mNames.iter() { + name.mType.hash(state); + name.mName.hash(state); + } + } + } + + #[cfg(feature = "gecko")] + impl PartialEq for FontFamilyList { + fn eq(&self, other: &FontFamilyList) -> bool { + if self.0.mNames.len() != other.0.mNames.len() { + return false; + } + for (a, b) in self.0.mNames.iter().zip(other.0.mNames.iter()) { + if a.mType != b.mType || &*a.mName != &*b.mName { + return false; + } + } + true + } + } + + #[cfg(feature = "gecko")] + impl Eq for FontFamilyList {} + + impl FontFamilyList { + #[cfg(feature = "servo")] + pub fn new(families: Vec) -> FontFamilyList { + FontFamilyList(families) + } + + #[cfg(feature = "gecko")] + pub fn new(families: Vec) -> FontFamilyList { + let fontlist; + let names; + unsafe { + fontlist = bindings::Gecko_SharedFontList_Create(); + names = &mut (*fontlist).mNames; + names.ensure_capacity(families.len()); + }; + + for family in families { + match family { + FontFamily::FamilyName(ref f) => { + let quoted = matches!(f.syntax, FamilyNameSyntax::Quoted); + unsafe { + bindings::Gecko_nsTArray_FontFamilyName_AppendNamed( + names, + f.name.as_ptr(), + quoted + ); + } + } + FontFamily::Generic(ref name) => { + let (family_type, _generic) = FontFamily::generic(name); + unsafe { + bindings::Gecko_nsTArray_FontFamilyName_AppendGeneric( + names, + family_type + ); + } + } + } + } + + FontFamilyList(unsafe { RefPtr::from_addrefed(fontlist) }) + } + + #[cfg(feature = "servo")] + pub fn iter(&self) -> slice::Iter { + self.0.iter() + } + + #[cfg(feature = "gecko")] + pub fn iter(&self) -> FontFamilyNameIter { + FontFamilyNameIter { + names: &self.0.mNames, + cur: 0, + } + } + + #[cfg(feature = "gecko")] + /// Return the generic ID if it is a single generic font + pub fn single_generic(&self) -> Option { + let mut iter = self.iter(); + if let Some(FontFamily::Generic(ref name)) = iter.next() { + if iter.next().is_none() { + return Some(FontFamily::generic(name).1); + } + } + None + } + } + + #[cfg(feature = "gecko")] + pub struct FontFamilyNameIter<'a> { + names: &'a structs::nsTArray, + cur: usize, + } + + #[cfg(feature = "gecko")] + impl<'a> Iterator for FontFamilyNameIter<'a> { + type Item = FontFamily; + + fn next(&mut self) -> Option { + if self.cur < self.names.len() { + let item = FontFamily::from_font_family_name(&self.names[self.cur]); + self.cur += 1; + Some(item) + } else { + None + } + } + } + #[derive(Clone, Debug, Eq, Hash, PartialEq)] - #[cfg_attr(feature = "gecko", derive(MallocSizeOf))] #[cfg_attr(feature = "servo", derive(HeapSizeOf))] - pub struct T(pub Vec); + pub struct T(pub FontFamilyList); + + #[cfg(feature = "gecko")] + impl MallocSizeOf for T { + fn size_of(&self, _ops: &mut MallocSizeOfOps) -> usize { + // SharedFontList objects are generally shared from the pointer + // stored in the specified value. So only count this if the + // SharedFontList is unshared. + unsafe { + bindings::Gecko_SharedFontList_SizeOfIncludingThisIfUnshared( + (self.0).0.get() + ) + } + } + } } #[inline] pub fn get_initial_value() -> computed_value::T { - computed_value::T(vec![FontFamily::Generic(atom!("serif"))]) + computed_value::T( + FontFamilyList::new(vec![FontFamily::Generic(atom!("serif"))]) + ) } /// # @@ -317,10 +493,9 @@ macro_rules! impl_gecko_keyword_conversions { SpecifiedValue::parse(input) } - #[cfg_attr(feature = "gecko", derive(MallocSizeOf))] #[derive(Clone, Debug, Eq, Hash, PartialEq)] pub enum SpecifiedValue { - Values(Vec), + Values(FontFamilyList), System(SystemFont), } @@ -328,14 +503,10 @@ macro_rules! impl_gecko_keyword_conversions { impl SpecifiedValue { /// Return the generic ID if it is a single generic font pub fn single_generic(&self) -> Option { - if let SpecifiedValue::Values(ref values) = *self { - if values.len() == 1 { - if let FontFamily::Generic(ref name) = values[0] { - return Some(FontFamily::generic(name).1); - } - } + match *self { + SpecifiedValue::Values(ref values) => values.single_generic(), + _ => None, } - None } } @@ -356,6 +527,24 @@ macro_rules! impl_gecko_keyword_conversions { } } + #[cfg(feature = "gecko")] + impl MallocSizeOf for SpecifiedValue { + fn size_of(&self, _ops: &mut MallocSizeOfOps) -> usize { + match *self { + SpecifiedValue::Values(ref v) => { + // Although a SharedFontList object is refcounted, we always + // attribute its size to the specified value. + unsafe { + bindings::Gecko_SharedFontList_SizeOfIncludingThis( + v.0.get() + ) + } + } + SpecifiedValue::System(_) => 0, + } + } + } + impl SpecifiedValue { pub fn system_font(f: SystemFont) -> Self { SpecifiedValue::System(f) @@ -369,11 +558,12 @@ macro_rules! impl_gecko_keyword_conversions { } pub fn parse<'i, 't>(input: &mut Parser<'i, 't>) -> Result> { - input.parse_comma_separated(|input| FontFamily::parse(input)).map(SpecifiedValue::Values) + input.parse_comma_separated(|input| FontFamily::parse(input)).map(|v| { + SpecifiedValue::Values(FontFamilyList::new(v)) + }) } } - impl ToCss for SpecifiedValue { fn to_css(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match *self { @@ -2191,16 +2381,13 @@ ${helpers.single_keyword("-moz-math-variant", cx.device().pres_context() ) } - let family = system.fontlist.mFontlist.iter().map(|font| { - use properties::longhands::font_family::computed_value::*; - FontFamily::FamilyName(FamilyName { - name: (&*font.mName).into(), - syntax: FamilyNameSyntax::Quoted, - }) - }).collect::>(); let weight = longhands::font_weight::computed_value::T::from_gecko_weight(system.weight); let ret = ComputedSystemFont { - font_family: longhands::font_family::computed_value::T(family), + font_family: longhands::font_family::computed_value::T( + longhands::font_family::computed_value::FontFamilyList( + unsafe { system.fontlist.mFontlist.mBasePtr.to_safe() } + ) + ), font_size: longhands::font_size::computed_value::T { size: Au(system.size).into(), keyword_info: None diff --git a/ports/geckolib/glue.rs b/ports/geckolib/glue.rs index 864158e0b2f..fc88368603c 100644 --- a/ports/geckolib/glue.rs +++ b/ports/geckolib/glue.rs @@ -2970,7 +2970,7 @@ pub extern "C" fn Servo_DeclarationBlock_SetFontFamily(declarations: let result = FontFamily::parse(&mut parser); if let Ok(family) = result { if parser.is_exhausted() { - let decl = PropertyDeclaration::FontFamily(Box::new(family)); + let decl = PropertyDeclaration::FontFamily(family); write_locked_arc(declarations, |decls: &mut PropertyDeclarationBlock| { decls.push(decl, Importance::Normal); }) From fde77ee693125019024f5b6b02c4d416454314d1 Mon Sep 17 00:00:00 2001 From: Cameron McCormack Date: Tue, 3 Oct 2017 18:01:26 +0800 Subject: [PATCH 2/2] style: Regenerate Gecko bindings. --- .../style/gecko/generated/atom_macro.rs | 8 + components/style/gecko/generated/bindings.rs | 47 ++- .../style/gecko/generated/structs_debug.rs | 379 ++++++++++-------- .../style/gecko/generated/structs_release.rs | 371 ++++++++++------- 4 files changed, 482 insertions(+), 323 deletions(-) diff --git a/components/style/gecko/generated/atom_macro.rs b/components/style/gecko/generated/atom_macro.rs index 671f489260d..85889db88b9 100644 --- a/components/style/gecko/generated/atom_macro.rs +++ b/components/style/gecko/generated/atom_macro.rs @@ -3280,6 +3280,8 @@ cfg_if! { pub static nsGkAtoms_skewY: *mut nsIAtom; #[link_name = "_ZN9nsGkAtoms5slopeE"] pub static nsGkAtoms_slope: *mut nsIAtom; + #[link_name = "_ZN9nsGkAtoms4slotE"] + pub static nsGkAtoms_slot: *mut nsIAtom; #[link_name = "_ZN9nsGkAtoms9softLightE"] pub static nsGkAtoms_softLight: *mut nsIAtom; #[link_name = "_ZN9nsGkAtoms7spacingE"] @@ -8447,6 +8449,8 @@ cfg_if! { pub static nsGkAtoms_skewY: *mut nsIAtom; #[link_name = "?slope@nsGkAtoms@@2PEAVnsIAtom@@EA"] pub static nsGkAtoms_slope: *mut nsIAtom; + #[link_name = "?slot@nsGkAtoms@@2PEAVnsIAtom@@EA"] + pub static nsGkAtoms_slot: *mut nsIAtom; #[link_name = "?softLight@nsGkAtoms@@2PEAVnsIAtom@@EA"] pub static nsGkAtoms_softLight: *mut nsIAtom; #[link_name = "?spacing@nsGkAtoms@@2PEAVnsIAtom@@EA"] @@ -13614,6 +13618,8 @@ cfg_if! { pub static nsGkAtoms_skewY: *mut nsIAtom; #[link_name = "\x01?slope@nsGkAtoms@@2PAVnsIAtom@@A"] pub static nsGkAtoms_slope: *mut nsIAtom; + #[link_name = "\x01?slot@nsGkAtoms@@2PAVnsIAtom@@A"] + pub static nsGkAtoms_slot: *mut nsIAtom; #[link_name = "\x01?softLight@nsGkAtoms@@2PAVnsIAtom@@A"] pub static nsGkAtoms_softLight: *mut nsIAtom; #[link_name = "\x01?spacing@nsGkAtoms@@2PAVnsIAtom@@A"] @@ -18784,6 +18790,8 @@ macro_rules! atom { { unsafe { $crate::string_cache::atom_macro::atom_from_static($crate::string_cache::atom_macro::nsGkAtoms_skewY as *mut _) } }; ("slope") => { unsafe { $crate::string_cache::atom_macro::atom_from_static($crate::string_cache::atom_macro::nsGkAtoms_slope as *mut _) } }; +("slot") => + { unsafe { $crate::string_cache::atom_macro::atom_from_static($crate::string_cache::atom_macro::nsGkAtoms_slot as *mut _) } }; ("soft-light") => { unsafe { $crate::string_cache::atom_macro::atom_from_static($crate::string_cache::atom_macro::nsGkAtoms_softLight as *mut _) } }; ("spacing") => diff --git a/components/style/gecko/generated/bindings.rs b/components/style/gecko/generated/bindings.rs index 1d5a215edca..ddac6831eee 100644 --- a/components/style/gecko/generated/bindings.rs +++ b/components/style/gecko/generated/bindings.rs @@ -52,7 +52,6 @@ use gecko_bindings::structs::CSSPseudoElementType; use gecko_bindings::structs::ServoTraversalFlags; use gecko_bindings::structs::ComputedTimingFunction_BeforeFlag; use gecko_bindings::structs::CounterStylePtr; -use gecko_bindings::structs::FontFamilyList; use gecko_bindings::structs::FontFamilyType; use gecko_bindings::structs::FontSizePrefs; use gecko_bindings::structs::GeckoFontMetrics; @@ -240,6 +239,8 @@ use gecko_bindings::structs::nsStyleTransformMatrix::MatrixTransformOperator; unsafe impl Send for nsStyleTransformMatrix::MatrixTransformOperator {} unsafe impl Sync for nsStyleTransformMatrix::MatrixTransformOperator {} use gecko_bindings::structs::RawGeckoGfxMatrix4x4; +use gecko_bindings::structs::FontFamilyName; +use gecko_bindings::structs::mozilla::SharedFontList; pub type nsTArrayBorrowed_uintptr_t<'a> = &'a mut ::gecko_bindings::structs::nsTArray; pub type RawServoStyleSetOwned = ::gecko_bindings::sugar::ownership::Owned; pub type RawServoStyleSetOwnedOrNull = ::gecko_bindings::sugar::ownership::OwnedOrNull; @@ -873,21 +874,41 @@ extern "C" { extern "C" { pub fn Gecko_EnsureMozBorderColors(aBorder: *mut nsStyleBorder); } -extern "C" { - pub fn Gecko_FontFamilyList_Clear(aList: *mut FontFamilyList); -} -extern "C" { - pub fn Gecko_FontFamilyList_AppendNamed(aList: *mut FontFamilyList, - aName: *mut nsIAtom, - aQuoted: bool); -} -extern "C" { - pub fn Gecko_FontFamilyList_AppendGeneric(list: *mut FontFamilyList, - familyType: FontFamilyType); -} extern "C" { pub fn Gecko_CopyFontFamilyFrom(dst: *mut nsFont, src: *const nsFont); } +extern "C" { + pub fn Gecko_nsTArray_FontFamilyName_AppendNamed(aNames: + *mut nsTArray, + aName: *mut nsIAtom, + aQuoted: bool); +} +extern "C" { + pub fn Gecko_nsTArray_FontFamilyName_AppendGeneric(aNames: + *mut nsTArray, + aType: FontFamilyType); +} +extern "C" { + pub fn Gecko_SharedFontList_Create() -> *mut SharedFontList; +} +extern "C" { + pub fn Gecko_SharedFontList_SizeOfIncludingThis(fontlist: + *mut SharedFontList) + -> usize; +} +extern "C" { + pub fn Gecko_SharedFontList_SizeOfIncludingThisIfUnshared(fontlist: + *mut SharedFontList) + -> usize; +} +extern "C" { + pub fn Gecko_AddRefSharedFontListArbitraryThread(aPtr: + *mut SharedFontList); +} +extern "C" { + pub fn Gecko_ReleaseSharedFontListArbitraryThread(aPtr: + *mut SharedFontList); +} extern "C" { pub fn Gecko_nsFont_InitSystem(dst: *mut nsFont, font_id: i32, font: *const nsStyleFont, diff --git a/components/style/gecko/generated/structs_debug.rs b/components/style/gecko/generated/structs_debug.rs index d91e9661053..1e192e2dced 100644 --- a/components/style/gecko/generated/structs_debug.rs +++ b/components/style/gecko/generated/structs_debug.rs @@ -1921,40 +1921,6 @@ pub mod root { mRefCnt ) )); } #[repr(C)] - #[derive(Debug)] - pub struct FontFamilyListRefCnt { - pub _base: root::mozilla::FontFamilyList, - pub mRefCnt: root::nsAutoRefCnt, - pub _mOwningThread: root::nsAutoOwningThread, - } - pub type FontFamilyListRefCnt_HasThreadSafeRefCnt = - root::mozilla::FalseType; - #[test] - fn bindgen_test_layout_FontFamilyListRefCnt() { - assert_eq!(::std::mem::size_of::() , - 32usize , concat ! ( - "Size of: " , stringify ! ( FontFamilyListRefCnt ) - )); - assert_eq! (::std::mem::align_of::() , - 8usize , concat ! ( - "Alignment of " , stringify ! ( - FontFamilyListRefCnt ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const FontFamilyListRefCnt ) ) . - mRefCnt as * const _ as usize } , 16usize , concat - ! ( - "Alignment of field: " , stringify ! ( - FontFamilyListRefCnt ) , "::" , stringify ! ( - mRefCnt ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const FontFamilyListRefCnt ) ) . - _mOwningThread as * const _ as usize } , 24usize , - concat ! ( - "Alignment of field: " , stringify ! ( - FontFamilyListRefCnt ) , "::" , stringify ! ( - _mOwningThread ) )); - } - #[repr(C)] #[derive(Debug, Copy)] pub struct RGBAColorData { pub mR: f32, @@ -4000,6 +3966,12 @@ pub mod root { eCornerBottomLeftX = 6, eCornerBottomLeftY = 7, } + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct NotNull { + pub mBasePtr: T, + pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell>, + } pub const FontFamilyType_eFamily_generic_first: root::mozilla::FontFamilyType = FontFamilyType::eFamily_serif; @@ -4053,13 +4025,61 @@ pub mod root { "Alignment of field: " , stringify ! ( FontFamilyName ) , "::" , stringify ! ( mName ) )); } + /// A refcounted array of FontFamilyNames. We use this to store the specified + /// value (in Servo) and the computed value (in both Gecko and Servo) of the + /// font-family property. + #[repr(C)] + #[derive(Debug)] + pub struct SharedFontList { + pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt, + pub mNames: root::nsTArray, + } + pub type SharedFontList_HasThreadSafeRefCnt = root::mozilla::TrueType; + extern "C" { + #[link_name = "_ZN7mozilla14SharedFontList6sEmptyE"] + pub static mut SharedFontList_sEmpty: + root::mozilla::StaticRefPtr; + } + #[test] + fn bindgen_test_layout_SharedFontList() { + assert_eq!(::std::mem::size_of::() , 16usize , + concat ! ( "Size of: " , stringify ! ( SharedFontList ) + )); + assert_eq! (::std::mem::align_of::() , 8usize , + concat ! ( + "Alignment of " , stringify ! ( SharedFontList ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const SharedFontList ) ) . mRefCnt as * + const _ as usize } , 0usize , concat ! ( + "Alignment of field: " , stringify ! ( SharedFontList + ) , "::" , stringify ! ( mRefCnt ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const SharedFontList ) ) . mNames as * + const _ as usize } , 8usize , concat ! ( + "Alignment of field: " , stringify ! ( SharedFontList + ) , "::" , stringify ! ( mNames ) )); + } + #[test] + fn __bindgen_test_layout_StaticRefPtr_open0_SharedFontList_close0_instantiation() { + assert_eq!(::std::mem::size_of::>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::mozilla::StaticRefPtr + ) )); + assert_eq!(::std::mem::align_of::>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! + ( + root::mozilla::StaticRefPtr + ) )); + } /// font family list, array of font families and a default font type. /// font family names are either named strings or generics. the default /// font type is used to preserve the variable font fallback behavior #[repr(C)] #[derive(Debug)] pub struct FontFamilyList { - pub mFontlist: root::nsTArray, + pub mFontlist: root::mozilla::NotNull>, pub mDefaultFontType: root::mozilla::FontFamilyType, } #[test] @@ -4306,12 +4326,6 @@ pub mod root { } #[repr(C)] #[derive(Debug, Copy, Clone)] - pub struct NotNull { - pub mBasePtr: T, - pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell>, - } - #[repr(C)] - #[derive(Debug, Copy, Clone)] pub struct WeakPtr { } pub type WeakPtr_WeakReference = u8; @@ -16514,7 +16528,8 @@ pub mod root { eCreated = 0, eConnected = 1, eDisconnected = 2, - eAttributeChanged = 3, + eAdopted = 3, + eAttributeChanged = 4, } pub const nsIDocument_eScopedStyle_Unknown: root::nsIDocument__bindgen_ty_1 = @@ -29239,7 +29254,7 @@ pub mod root { pub mPairList: root::__BindgenUnionField<*mut root::nsCSSValuePairList_heap>, pub mPairListDependent: root::__BindgenUnionField<*mut root::nsCSSValuePairList>, pub mFloatColor: root::__BindgenUnionField<*mut root::nsCSSValueFloatColor>, - pub mFontFamilyList: root::__BindgenUnionField<*mut root::mozilla::css::FontFamilyListRefCnt>, + pub mFontFamilyList: root::__BindgenUnionField<*mut root::mozilla::SharedFontList>, pub mComplexColor: root::__BindgenUnionField<*mut root::mozilla::css::ComplexColorValue>, pub bindgen_union_field: u64, } @@ -32797,28 +32812,6 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation() { - assert_eq!(::std::mem::size_of::>() - , 8usize , concat ! ( - "Size of template specialization: " , stringify ! ( - root::nsTArray<::nsstring::nsStringRepr> ) )); - assert_eq!(::std::mem::align_of::>() - , 8usize , concat ! ( - "Alignment of template specialization: " , stringify ! ( - root::nsTArray<::nsstring::nsStringRepr> ) )); - } - #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_1() { - assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , - concat ! ( - "Size of template specialization: " , stringify ! ( - ::nsstring::nsStringRepr ) )); - assert_eq!(::std::mem::align_of::<::nsstring::nsStringRepr>() , 8usize , - concat ! ( - "Alignment of template specialization: " , stringify ! ( - ::nsstring::nsStringRepr ) )); - } - #[test] fn __bindgen_test_layout_nsTArray_open0_FontFamilyName_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( @@ -32841,6 +32834,52 @@ pub mod root { root::nsTArray ) )); } #[test] + fn __bindgen_test_layout_nsTArray_open0_FontFamilyName_close0_instantiation_2() { + assert_eq!(::std::mem::size_of::>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray ) )); + assert_eq!(::std::mem::align_of::>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray ) )); + } + #[test] + fn __bindgen_test_layout_nsTArray_open0_FontFamilyName_close0_instantiation_3() { + assert_eq!(::std::mem::size_of::>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray ) )); + assert_eq!(::std::mem::align_of::>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray ) )); + } + #[test] + fn __bindgen_test_layout_NotNull_open0_RefPtr_open1_SharedFontList_close1_close0_instantiation() { + assert_eq!(::std::mem::size_of::>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::mozilla::NotNull> + ) )); + assert_eq!(::std::mem::align_of::>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::mozilla::NotNull> + ) )); + } + #[test] + fn __bindgen_test_layout_RefPtr_open0_SharedFontList_close0_instantiation() { + assert_eq!(::std::mem::size_of::>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::RefPtr ) )); + assert_eq!(::std::mem::align_of::>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::RefPtr ) )); + } + #[test] fn __bindgen_test_layout_nsTArray_open0_unsigned_int_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( @@ -32953,7 +32992,7 @@ pub mod root { root::nsTArray ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_226503_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_226607_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33320,7 +33359,7 @@ pub mod root { root::RefPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_1() { + fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33331,7 +33370,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_2() { + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_1() { assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33342,7 +33381,7 @@ pub mod root { ::nsstring::nsStringRepr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_228357_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_228460_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33507,7 +33546,7 @@ pub mod root { root::JS::DeletePolicy ) )); } #[test] - fn __bindgen_test_layout_iterator_open0_input_iterator_tag_UniquePtr_open1_JSErrorNotes_Note_DeletePolicy_open2_JSErrorNotes_Note_close2_close1_long__bindgen_ty_id_233983__bindgen_ty_id_233990_close0_instantiation() { + fn __bindgen_test_layout_iterator_open0_input_iterator_tag_UniquePtr_open1_JSErrorNotes_Note_DeletePolicy_open2_JSErrorNotes_Note_close2_close1_long__bindgen_ty_id_234086__bindgen_ty_id_234093_close0_instantiation() { assert_eq!(::std::mem::size_of::() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33814,7 +33853,7 @@ pub mod root { root::RefPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_236522_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_236625_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33882,7 +33921,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_236827_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_236930_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33994,7 +34033,7 @@ pub mod root { root::RefPtr ) )); } #[test] - fn __bindgen_test_layout_NotNull_open0__bindgen_ty_id_237378_close0_instantiation() { + fn __bindgen_test_layout_NotNull_open0__bindgen_ty_id_237481_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34431,7 +34470,7 @@ pub mod root { root::RefPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_237809_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_237912_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34547,7 +34586,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_238225_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_238328_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34670,7 +34709,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_2() { + fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_1() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34681,7 +34720,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_3() { + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_2() { assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34692,7 +34731,7 @@ pub mod root { ::nsstring::nsStringRepr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_239206_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_239309_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34781,7 +34820,7 @@ pub mod root { root::RefPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_239518_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_239621_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34792,7 +34831,7 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_239523_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_239626_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34849,7 +34888,7 @@ pub mod root { root::RefPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_240019_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_240122_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35240,7 +35279,7 @@ pub mod root { root::nsTString<::std::os::raw::c_char> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_3() { + fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_2() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35251,7 +35290,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_4() { + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_3() { assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35510,7 +35549,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_242818_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_242921_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35589,7 +35628,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_249053_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_249156_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35679,7 +35718,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_251327_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_251430_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35690,7 +35729,7 @@ pub mod root { root::nsTArray<*mut root::nsISupports> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_4() { + fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_3() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35701,7 +35740,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_5() { + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_4() { assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35723,7 +35762,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_5() { + fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_4() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35734,7 +35773,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_6() { + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_5() { assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35896,7 +35935,7 @@ pub mod root { root::nsTArray ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_252815_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_252918_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35944,7 +35983,7 @@ pub mod root { root::mozilla::UniquePtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_6() { + fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_5() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35955,7 +35994,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_7() { + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_6() { assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36012,7 +36051,7 @@ pub mod root { root::nsRefPtrHashKey ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_255231_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_255334_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36045,7 +36084,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_7() { + fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_6() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36056,7 +36095,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_8() { + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_7() { assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36091,7 +36130,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_8() { + fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_7() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36102,7 +36141,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_9() { + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_8() { assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36267,7 +36306,7 @@ pub mod root { root::nsTArray ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_9() { + fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_8() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36278,7 +36317,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_10() { + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_9() { assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36377,6 +36416,28 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] + fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_9() { + assert_eq!(::std::mem::size_of::>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<::nsstring::nsStringRepr> ) )); + assert_eq!(::std::mem::align_of::>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<::nsstring::nsStringRepr> ) )); + } + #[test] + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_10() { + assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , + concat ! ( + "Size of template specialization: " , stringify ! ( + ::nsstring::nsStringRepr ) )); + assert_eq!(::std::mem::align_of::<::nsstring::nsStringRepr>() , 8usize , + concat ! ( + "Alignment of template specialization: " , stringify ! ( + ::nsstring::nsStringRepr ) )); + } + #[test] fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_10() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( @@ -36421,28 +36482,6 @@ pub mod root { ::nsstring::nsStringRepr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_12() { - assert_eq!(::std::mem::size_of::>() - , 8usize , concat ! ( - "Size of template specialization: " , stringify ! ( - root::nsTArray<::nsstring::nsStringRepr> ) )); - assert_eq!(::std::mem::align_of::>() - , 8usize , concat ! ( - "Alignment of template specialization: " , stringify ! ( - root::nsTArray<::nsstring::nsStringRepr> ) )); - } - #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_13() { - assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , - concat ! ( - "Size of template specialization: " , stringify ! ( - ::nsstring::nsStringRepr ) )); - assert_eq!(::std::mem::align_of::<::nsstring::nsStringRepr>() , 8usize , - concat ! ( - "Alignment of template specialization: " , stringify ! ( - ::nsstring::nsStringRepr ) )); - } - #[test] fn __bindgen_test_layout_nsTArray_open0_nsStyleGradientStop_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( @@ -36651,7 +36690,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_14() { + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_13() { assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36662,7 +36701,7 @@ pub mod root { ::nsstring::nsStringRepr ) )); } #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_15() { + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_14() { assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36684,7 +36723,7 @@ pub mod root { root::nsTArray> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_13() { + fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_12() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36695,7 +36734,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_16() { + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_15() { assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36728,6 +36767,28 @@ pub mod root { root::nsTArray ) )); } #[test] + fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_13() { + assert_eq!(::std::mem::size_of::>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<::nsstring::nsStringRepr> ) )); + assert_eq!(::std::mem::align_of::>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<::nsstring::nsStringRepr> ) )); + } + #[test] + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_16() { + assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , + concat ! ( + "Size of template specialization: " , stringify ! ( + ::nsstring::nsStringRepr ) )); + assert_eq!(::std::mem::align_of::<::nsstring::nsStringRepr>() , 8usize , + concat ! ( + "Alignment of template specialization: " , stringify ! ( + ::nsstring::nsStringRepr ) )); + } + #[test] fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_14() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( @@ -36750,28 +36811,6 @@ pub mod root { ::nsstring::nsStringRepr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_15() { - assert_eq!(::std::mem::size_of::>() - , 8usize , concat ! ( - "Size of template specialization: " , stringify ! ( - root::nsTArray<::nsstring::nsStringRepr> ) )); - assert_eq!(::std::mem::align_of::>() - , 8usize , concat ! ( - "Alignment of template specialization: " , stringify ! ( - root::nsTArray<::nsstring::nsStringRepr> ) )); - } - #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_18() { - assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , - concat ! ( - "Size of template specialization: " , stringify ! ( - ::nsstring::nsStringRepr ) )); - assert_eq!(::std::mem::align_of::<::nsstring::nsStringRepr>() , 8usize , - concat ! ( - "Alignment of template specialization: " , stringify ! ( - ::nsstring::nsStringRepr ) )); - } - #[test] fn __bindgen_test_layout_RefPtr_open0_nsIAtom_close0_instantiation_10() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( @@ -36932,7 +36971,7 @@ pub mod root { root::RefPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_257915_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_258017_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37169,7 +37208,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_266234_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_266336_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37180,7 +37219,7 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_266239_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_266341_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37268,7 +37307,7 @@ pub mod root { root::RefPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_266352_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_266454_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37542,7 +37581,7 @@ pub mod root { root::nsRefPtrHashKey ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_268084_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_268186_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37564,7 +37603,7 @@ pub mod root { root::RefPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_268246_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_268348_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37575,7 +37614,7 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_268251_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_268353_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37586,6 +37625,28 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] + fn __bindgen_test_layout_nsTArray_open0_FontFamilyName_close0_instantiation_4() { + assert_eq!(::std::mem::size_of::>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray ) )); + assert_eq!(::std::mem::align_of::>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray ) )); + } + #[test] + fn __bindgen_test_layout_nsTArray_open0_FontFamilyName_close0_instantiation_5() { + assert_eq!(::std::mem::size_of::>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray ) )); + assert_eq!(::std::mem::align_of::>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray ) )); + } + #[test] fn __bindgen_test_layout_nsTArray_open0_unsigned_int_close0_instantiation_6() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( @@ -37597,7 +37658,7 @@ pub mod root { root::nsTArray<::std::os::raw::c_uint> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_16() { + fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_15() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37608,7 +37669,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_19() { + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_18() { assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37718,7 +37779,7 @@ pub mod root { root::nsTArray ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_270691_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_270805_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37729,7 +37790,7 @@ pub mod root { root::nsTArray<*mut root::mozilla::css::DocumentRule> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_270699_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_270813_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( diff --git a/components/style/gecko/generated/structs_release.rs b/components/style/gecko/generated/structs_release.rs index cfb8e5f8faf..6b0c7e5c6f0 100644 --- a/components/style/gecko/generated/structs_release.rs +++ b/components/style/gecko/generated/structs_release.rs @@ -1885,32 +1885,6 @@ pub mod root { mRefCnt ) )); } #[repr(C)] - #[derive(Debug)] - pub struct FontFamilyListRefCnt { - pub _base: root::mozilla::FontFamilyList, - pub mRefCnt: root::nsAutoRefCnt, - } - pub type FontFamilyListRefCnt_HasThreadSafeRefCnt = - root::mozilla::FalseType; - #[test] - fn bindgen_test_layout_FontFamilyListRefCnt() { - assert_eq!(::std::mem::size_of::() , - 24usize , concat ! ( - "Size of: " , stringify ! ( FontFamilyListRefCnt ) - )); - assert_eq! (::std::mem::align_of::() , - 8usize , concat ! ( - "Alignment of " , stringify ! ( - FontFamilyListRefCnt ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const FontFamilyListRefCnt ) ) . - mRefCnt as * const _ as usize } , 16usize , concat - ! ( - "Alignment of field: " , stringify ! ( - FontFamilyListRefCnt ) , "::" , stringify ! ( - mRefCnt ) )); - } - #[repr(C)] #[derive(Debug, Copy)] pub struct RGBAColorData { pub mR: f32, @@ -3920,6 +3894,12 @@ pub mod root { eCornerBottomLeftX = 6, eCornerBottomLeftY = 7, } + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct NotNull { + pub mBasePtr: T, + pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell>, + } pub const FontFamilyType_eFamily_generic_first: root::mozilla::FontFamilyType = FontFamilyType::eFamily_serif; @@ -3973,13 +3953,61 @@ pub mod root { "Alignment of field: " , stringify ! ( FontFamilyName ) , "::" , stringify ! ( mName ) )); } + /// A refcounted array of FontFamilyNames. We use this to store the specified + /// value (in Servo) and the computed value (in both Gecko and Servo) of the + /// font-family property. + #[repr(C)] + #[derive(Debug)] + pub struct SharedFontList { + pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt, + pub mNames: root::nsTArray, + } + pub type SharedFontList_HasThreadSafeRefCnt = root::mozilla::TrueType; + extern "C" { + #[link_name = "_ZN7mozilla14SharedFontList6sEmptyE"] + pub static mut SharedFontList_sEmpty: + root::mozilla::StaticRefPtr; + } + #[test] + fn bindgen_test_layout_SharedFontList() { + assert_eq!(::std::mem::size_of::() , 16usize , + concat ! ( "Size of: " , stringify ! ( SharedFontList ) + )); + assert_eq! (::std::mem::align_of::() , 8usize , + concat ! ( + "Alignment of " , stringify ! ( SharedFontList ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const SharedFontList ) ) . mRefCnt as * + const _ as usize } , 0usize , concat ! ( + "Alignment of field: " , stringify ! ( SharedFontList + ) , "::" , stringify ! ( mRefCnt ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const SharedFontList ) ) . mNames as * + const _ as usize } , 8usize , concat ! ( + "Alignment of field: " , stringify ! ( SharedFontList + ) , "::" , stringify ! ( mNames ) )); + } + #[test] + fn __bindgen_test_layout_StaticRefPtr_open0_SharedFontList_close0_instantiation() { + assert_eq!(::std::mem::size_of::>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::mozilla::StaticRefPtr + ) )); + assert_eq!(::std::mem::align_of::>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! + ( + root::mozilla::StaticRefPtr + ) )); + } /// font family list, array of font families and a default font type. /// font family names are either named strings or generics. the default /// font type is used to preserve the variable font fallback behavior #[repr(C)] #[derive(Debug)] pub struct FontFamilyList { - pub mFontlist: root::nsTArray, + pub mFontlist: root::mozilla::NotNull>, pub mDefaultFontType: root::mozilla::FontFamilyType, } #[test] @@ -4226,12 +4254,6 @@ pub mod root { } #[repr(C)] #[derive(Debug, Copy, Clone)] - pub struct NotNull { - pub mBasePtr: T, - pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell>, - } - #[repr(C)] - #[derive(Debug, Copy, Clone)] pub struct WeakPtr { } pub type WeakPtr_WeakReference = u8; @@ -16358,7 +16380,8 @@ pub mod root { eCreated = 0, eConnected = 1, eDisconnected = 2, - eAttributeChanged = 3, + eAdopted = 3, + eAttributeChanged = 4, } pub const nsIDocument_eScopedStyle_Unknown: root::nsIDocument__bindgen_ty_1 = @@ -28832,7 +28855,7 @@ pub mod root { pub mPairList: root::__BindgenUnionField<*mut root::nsCSSValuePairList_heap>, pub mPairListDependent: root::__BindgenUnionField<*mut root::nsCSSValuePairList>, pub mFloatColor: root::__BindgenUnionField<*mut root::nsCSSValueFloatColor>, - pub mFontFamilyList: root::__BindgenUnionField<*mut root::mozilla::css::FontFamilyListRefCnt>, + pub mFontFamilyList: root::__BindgenUnionField<*mut root::mozilla::SharedFontList>, pub mComplexColor: root::__BindgenUnionField<*mut root::mozilla::css::ComplexColorValue>, pub bindgen_union_field: u64, } @@ -32390,28 +32413,6 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation() { - assert_eq!(::std::mem::size_of::>() - , 8usize , concat ! ( - "Size of template specialization: " , stringify ! ( - root::nsTArray<::nsstring::nsStringRepr> ) )); - assert_eq!(::std::mem::align_of::>() - , 8usize , concat ! ( - "Alignment of template specialization: " , stringify ! ( - root::nsTArray<::nsstring::nsStringRepr> ) )); - } - #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_1() { - assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , - concat ! ( - "Size of template specialization: " , stringify ! ( - ::nsstring::nsStringRepr ) )); - assert_eq!(::std::mem::align_of::<::nsstring::nsStringRepr>() , 8usize , - concat ! ( - "Alignment of template specialization: " , stringify ! ( - ::nsstring::nsStringRepr ) )); - } - #[test] fn __bindgen_test_layout_nsTArray_open0_FontFamilyName_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( @@ -32434,6 +32435,52 @@ pub mod root { root::nsTArray ) )); } #[test] + fn __bindgen_test_layout_nsTArray_open0_FontFamilyName_close0_instantiation_2() { + assert_eq!(::std::mem::size_of::>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray ) )); + assert_eq!(::std::mem::align_of::>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray ) )); + } + #[test] + fn __bindgen_test_layout_nsTArray_open0_FontFamilyName_close0_instantiation_3() { + assert_eq!(::std::mem::size_of::>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray ) )); + assert_eq!(::std::mem::align_of::>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray ) )); + } + #[test] + fn __bindgen_test_layout_NotNull_open0_RefPtr_open1_SharedFontList_close1_close0_instantiation() { + assert_eq!(::std::mem::size_of::>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::mozilla::NotNull> + ) )); + assert_eq!(::std::mem::align_of::>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::mozilla::NotNull> + ) )); + } + #[test] + fn __bindgen_test_layout_RefPtr_open0_SharedFontList_close0_instantiation() { + assert_eq!(::std::mem::size_of::>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::RefPtr ) )); + assert_eq!(::std::mem::align_of::>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::RefPtr ) )); + } + #[test] fn __bindgen_test_layout_nsTArray_open0_unsigned_int_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( @@ -32546,7 +32593,7 @@ pub mod root { root::nsTArray ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_224054_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_224159_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -32913,7 +32960,7 @@ pub mod root { root::RefPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_1() { + fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -32924,7 +32971,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_2() { + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_1() { assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -32935,7 +32982,7 @@ pub mod root { ::nsstring::nsStringRepr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_225874_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_225978_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33100,7 +33147,7 @@ pub mod root { root::JS::DeletePolicy ) )); } #[test] - fn __bindgen_test_layout_iterator_open0_input_iterator_tag_UniquePtr_open1_JSErrorNotes_Note_DeletePolicy_open2_JSErrorNotes_Note_close2_close1_long__bindgen_ty_id_231472__bindgen_ty_id_231479_close0_instantiation() { + fn __bindgen_test_layout_iterator_open0_input_iterator_tag_UniquePtr_open1_JSErrorNotes_Note_DeletePolicy_open2_JSErrorNotes_Note_close2_close1_long__bindgen_ty_id_231576__bindgen_ty_id_231583_close0_instantiation() { assert_eq!(::std::mem::size_of::() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33407,7 +33454,7 @@ pub mod root { root::RefPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_234009_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_234113_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33475,7 +33522,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_234314_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_234418_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33587,7 +33634,7 @@ pub mod root { root::RefPtr ) )); } #[test] - fn __bindgen_test_layout_NotNull_open0__bindgen_ty_id_234865_close0_instantiation() { + fn __bindgen_test_layout_NotNull_open0__bindgen_ty_id_234969_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34022,7 +34069,7 @@ pub mod root { root::RefPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_235294_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_235398_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34138,7 +34185,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_235708_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_235812_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34261,7 +34308,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_2() { + fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_1() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34272,7 +34319,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_3() { + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_2() { assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34283,7 +34330,7 @@ pub mod root { ::nsstring::nsStringRepr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_236679_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_236783_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34372,7 +34419,7 @@ pub mod root { root::RefPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_236989_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_237093_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34383,7 +34430,7 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_236994_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_237098_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34440,7 +34487,7 @@ pub mod root { root::RefPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_237474_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_237578_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34829,7 +34876,7 @@ pub mod root { root::nsTString<::std::os::raw::c_char> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_3() { + fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_2() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34840,7 +34887,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_4() { + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_3() { assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35088,7 +35135,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_240243_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_240347_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35167,7 +35214,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_246461_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_246565_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35257,7 +35304,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_248735_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_248839_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35268,7 +35315,7 @@ pub mod root { root::nsTArray<*mut root::nsISupports> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_4() { + fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_3() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35279,7 +35326,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_5() { + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_4() { assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35301,7 +35348,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_5() { + fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_4() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35312,7 +35359,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_6() { + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_5() { assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35474,7 +35521,7 @@ pub mod root { root::nsTArray ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_250223_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_250327_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35522,7 +35569,7 @@ pub mod root { root::mozilla::UniquePtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_6() { + fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_5() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35533,7 +35580,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_7() { + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_6() { assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35590,7 +35637,7 @@ pub mod root { root::nsRefPtrHashKey ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_252604_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_252708_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35623,7 +35670,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_7() { + fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_6() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35634,7 +35681,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_8() { + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_7() { assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35669,7 +35716,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_8() { + fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_7() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35680,7 +35727,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_9() { + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_8() { assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35845,7 +35892,7 @@ pub mod root { root::nsTArray ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_9() { + fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_8() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35856,7 +35903,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_10() { + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_9() { assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35955,6 +36002,28 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] + fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_9() { + assert_eq!(::std::mem::size_of::>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<::nsstring::nsStringRepr> ) )); + assert_eq!(::std::mem::align_of::>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<::nsstring::nsStringRepr> ) )); + } + #[test] + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_10() { + assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , + concat ! ( + "Size of template specialization: " , stringify ! ( + ::nsstring::nsStringRepr ) )); + assert_eq!(::std::mem::align_of::<::nsstring::nsStringRepr>() , 8usize , + concat ! ( + "Alignment of template specialization: " , stringify ! ( + ::nsstring::nsStringRepr ) )); + } + #[test] fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_10() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( @@ -35999,28 +36068,6 @@ pub mod root { ::nsstring::nsStringRepr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_12() { - assert_eq!(::std::mem::size_of::>() - , 8usize , concat ! ( - "Size of template specialization: " , stringify ! ( - root::nsTArray<::nsstring::nsStringRepr> ) )); - assert_eq!(::std::mem::align_of::>() - , 8usize , concat ! ( - "Alignment of template specialization: " , stringify ! ( - root::nsTArray<::nsstring::nsStringRepr> ) )); - } - #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_13() { - assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , - concat ! ( - "Size of template specialization: " , stringify ! ( - ::nsstring::nsStringRepr ) )); - assert_eq!(::std::mem::align_of::<::nsstring::nsStringRepr>() , 8usize , - concat ! ( - "Alignment of template specialization: " , stringify ! ( - ::nsstring::nsStringRepr ) )); - } - #[test] fn __bindgen_test_layout_nsTArray_open0_nsStyleGradientStop_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( @@ -36229,7 +36276,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_14() { + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_13() { assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36240,7 +36287,7 @@ pub mod root { ::nsstring::nsStringRepr ) )); } #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_15() { + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_14() { assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36262,7 +36309,7 @@ pub mod root { root::nsTArray> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_13() { + fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_12() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36273,7 +36320,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_16() { + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_15() { assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36306,6 +36353,28 @@ pub mod root { root::nsTArray ) )); } #[test] + fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_13() { + assert_eq!(::std::mem::size_of::>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<::nsstring::nsStringRepr> ) )); + assert_eq!(::std::mem::align_of::>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<::nsstring::nsStringRepr> ) )); + } + #[test] + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_16() { + assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , + concat ! ( + "Size of template specialization: " , stringify ! ( + ::nsstring::nsStringRepr ) )); + assert_eq!(::std::mem::align_of::<::nsstring::nsStringRepr>() , 8usize , + concat ! ( + "Alignment of template specialization: " , stringify ! ( + ::nsstring::nsStringRepr ) )); + } + #[test] fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_14() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( @@ -36328,28 +36397,6 @@ pub mod root { ::nsstring::nsStringRepr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_15() { - assert_eq!(::std::mem::size_of::>() - , 8usize , concat ! ( - "Size of template specialization: " , stringify ! ( - root::nsTArray<::nsstring::nsStringRepr> ) )); - assert_eq!(::std::mem::align_of::>() - , 8usize , concat ! ( - "Alignment of template specialization: " , stringify ! ( - root::nsTArray<::nsstring::nsStringRepr> ) )); - } - #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_18() { - assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , - concat ! ( - "Size of template specialization: " , stringify ! ( - ::nsstring::nsStringRepr ) )); - assert_eq!(::std::mem::align_of::<::nsstring::nsStringRepr>() , 8usize , - concat ! ( - "Alignment of template specialization: " , stringify ! ( - ::nsstring::nsStringRepr ) )); - } - #[test] fn __bindgen_test_layout_RefPtr_open0_nsIAtom_close0_instantiation_10() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( @@ -36510,7 +36557,7 @@ pub mod root { root::RefPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_255212_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_255315_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36747,7 +36794,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_263531_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_263634_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36758,7 +36805,7 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_263536_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_263639_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36846,7 +36893,7 @@ pub mod root { root::RefPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_263649_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_263752_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37120,7 +37167,7 @@ pub mod root { root::nsRefPtrHashKey ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_265375_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_265478_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37142,7 +37189,7 @@ pub mod root { root::RefPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_265533_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_265636_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37153,7 +37200,7 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_265538_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_265641_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37164,6 +37211,28 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] + fn __bindgen_test_layout_nsTArray_open0_FontFamilyName_close0_instantiation_4() { + assert_eq!(::std::mem::size_of::>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray ) )); + assert_eq!(::std::mem::align_of::>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray ) )); + } + #[test] + fn __bindgen_test_layout_nsTArray_open0_FontFamilyName_close0_instantiation_5() { + assert_eq!(::std::mem::size_of::>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray ) )); + assert_eq!(::std::mem::align_of::>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray ) )); + } + #[test] fn __bindgen_test_layout_nsTArray_open0_unsigned_int_close0_instantiation_6() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( @@ -37175,7 +37244,7 @@ pub mod root { root::nsTArray<::std::os::raw::c_uint> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_16() { + fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_15() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37186,7 +37255,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_19() { + fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_18() { assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37296,7 +37365,7 @@ pub mod root { root::nsTArray ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_267968_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_268083_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37307,7 +37376,7 @@ pub mod root { root::nsTArray<*mut root::mozilla::css::DocumentRule> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_267974_close0_instantiation() { + fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_268089_close0_instantiation() { assert_eq!(::std::mem::size_of::>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! (