Auto merge of #18722 - heycam:family-list, r=upsuper

style: Use a SharedFontList object to store font-family values for Gecko

Reviewed by Xidorn and Manish in https://bugzilla.mozilla.org/show_bug.cgi?id=1397626.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18722)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2017-10-04 05:01:45 -05:00 committed by GitHub
commit 3b7a82b8c7
10 changed files with 724 additions and 412 deletions

View file

@ -135,7 +135,7 @@ impl FontContext {
let mut fonts: SmallVec<[Rc<RefCell<Font>>; 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 {

View file

@ -554,9 +554,10 @@ impl LayoutElementHelpers for LayoutDom<Element> {
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::<HTMLFontElement>().and_then(|this| this.get_size());

View file

@ -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") =>

View file

@ -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<usize>;
pub type RawServoStyleSetOwned = ::gecko_bindings::sugar::ownership::Owned<RawServoStyleSet>;
pub type RawServoStyleSetOwnedOrNull = ::gecko_bindings::sugar::ownership::OwnedOrNull<RawServoStyleSet>;
@ -874,19 +875,39 @@ extern "C" {
pub fn Gecko_EnsureMozBorderColors(aBorder: *mut nsStyleBorder);
}
extern "C" {
pub fn Gecko_FontFamilyList_Clear(aList: *mut FontFamilyList);
pub fn Gecko_CopyFontFamilyFrom(dst: *mut nsFont, src: *const nsFont);
}
extern "C" {
pub fn Gecko_FontFamilyList_AppendNamed(aList: *mut FontFamilyList,
pub fn Gecko_nsTArray_FontFamilyName_AppendNamed(aNames:
*mut nsTArray<FontFamilyName>,
aName: *mut nsIAtom,
aQuoted: bool);
}
extern "C" {
pub fn Gecko_FontFamilyList_AppendGeneric(list: *mut FontFamilyList,
familyType: FontFamilyType);
pub fn Gecko_nsTArray_FontFamilyName_AppendGeneric(aNames:
*mut nsTArray<FontFamilyName>,
aType: FontFamilyType);
}
extern "C" {
pub fn Gecko_CopyFontFamilyFrom(dst: *mut nsFont, src: *const nsFont);
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,

View file

@ -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::<FontFamilyListRefCnt>() ,
32usize , concat ! (
"Size of: " , stringify ! ( FontFamilyListRefCnt )
));
assert_eq! (::std::mem::align_of::<FontFamilyListRefCnt>() ,
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<T> {
pub mBasePtr: T,
pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
}
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<root::mozilla::FontFamilyName>,
}
pub type SharedFontList_HasThreadSafeRefCnt = root::mozilla::TrueType;
extern "C" {
#[link_name = "_ZN7mozilla14SharedFontList6sEmptyE"]
pub static mut SharedFontList_sEmpty:
root::mozilla::StaticRefPtr<root::mozilla::SharedFontList>;
}
#[test]
fn bindgen_test_layout_SharedFontList() {
assert_eq!(::std::mem::size_of::<SharedFontList>() , 16usize ,
concat ! ( "Size of: " , stringify ! ( SharedFontList )
));
assert_eq! (::std::mem::align_of::<SharedFontList>() , 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::<root::mozilla::StaticRefPtr<root::mozilla::SharedFontList>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::mozilla::StaticRefPtr<root::mozilla::SharedFontList>
) ));
assert_eq!(::std::mem::align_of::<root::mozilla::StaticRefPtr<root::mozilla::SharedFontList>>()
, 8usize , concat ! (
"Alignment of template specialization: " , stringify !
(
root::mozilla::StaticRefPtr<root::mozilla::SharedFontList>
) ));
}
/// 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<root::mozilla::FontFamilyName>,
pub mFontlist: root::mozilla::NotNull<root::RefPtr<root::mozilla::SharedFontList>>,
pub mDefaultFontType: root::mozilla::FontFamilyType,
}
#[test]
@ -4306,12 +4326,6 @@ pub mod root {
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct NotNull<T> {
pub mBasePtr: T,
pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
}
#[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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::nsTArray<::nsstring::nsStringRepr> ) ));
assert_eq!(::std::mem::align_of::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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::<root::nsTArray<root::mozilla::FontFamilyName>>()
, 8usize , concat ! (
@ -32841,6 +32834,52 @@ pub mod root {
root::nsTArray<root::mozilla::FontFamilyName> ) ));
}
#[test]
fn __bindgen_test_layout_nsTArray_open0_FontFamilyName_close0_instantiation_2() {
assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::FontFamilyName>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::nsTArray<root::mozilla::FontFamilyName> ) ));
assert_eq!(::std::mem::align_of::<root::nsTArray<root::mozilla::FontFamilyName>>()
, 8usize , concat ! (
"Alignment of template specialization: " , stringify ! (
root::nsTArray<root::mozilla::FontFamilyName> ) ));
}
#[test]
fn __bindgen_test_layout_nsTArray_open0_FontFamilyName_close0_instantiation_3() {
assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::FontFamilyName>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::nsTArray<root::mozilla::FontFamilyName> ) ));
assert_eq!(::std::mem::align_of::<root::nsTArray<root::mozilla::FontFamilyName>>()
, 8usize , concat ! (
"Alignment of template specialization: " , stringify ! (
root::nsTArray<root::mozilla::FontFamilyName> ) ));
}
#[test]
fn __bindgen_test_layout_NotNull_open0_RefPtr_open1_SharedFontList_close1_close0_instantiation() {
assert_eq!(::std::mem::size_of::<root::mozilla::NotNull<root::RefPtr<root::mozilla::SharedFontList>>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::mozilla::NotNull<root::RefPtr<root::mozilla::SharedFontList>>
) ));
assert_eq!(::std::mem::align_of::<root::mozilla::NotNull<root::RefPtr<root::mozilla::SharedFontList>>>()
, 8usize , concat ! (
"Alignment of template specialization: " , stringify ! (
root::mozilla::NotNull<root::RefPtr<root::mozilla::SharedFontList>>
) ));
}
#[test]
fn __bindgen_test_layout_RefPtr_open0_SharedFontList_close0_instantiation() {
assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::SharedFontList>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::RefPtr<root::mozilla::SharedFontList> ) ));
assert_eq!(::std::mem::align_of::<root::RefPtr<root::mozilla::SharedFontList>>()
, 8usize , concat ! (
"Alignment of template specialization: " , stringify ! (
root::RefPtr<root::mozilla::SharedFontList> ) ));
}
#[test]
fn __bindgen_test_layout_nsTArray_open0_unsigned_int_close0_instantiation() {
assert_eq!(::std::mem::size_of::<root::nsTArray<::std::os::raw::c_uint>>()
, 8usize , concat ! (
@ -32953,7 +32992,7 @@ pub mod root {
root::nsTArray<root::mozilla::gfx::FontVariation> ) ));
}
#[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::<root::nsTArray<*mut root::nsCSSSelector>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -33320,7 +33359,7 @@ pub mod root {
root::RefPtr<root::mozilla::ServoStyleContext> ) ));
}
#[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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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::<root::nsTArray<*mut root::mozilla::StyleSheet>>()
, 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::<root::std::iterator>() , 1usize ,
concat ! (
"Size of template specialization: " , stringify ! (
@ -33814,7 +33853,7 @@ pub mod root {
root::RefPtr<root::mozilla::StyleSheet> ) ));
}
#[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::<root::nsTArray<*mut root::mozilla::dom::Element>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -33882,7 +33921,7 @@ pub mod root {
root::nsCOMPtr<root::nsIObserver> ) ));
}
#[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::<root::nsTArray<*mut root::mozilla::dom::Element>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -33994,7 +34033,7 @@ pub mod root {
root::RefPtr<root::mozilla::URLExtraData> ) ));
}
#[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::<root::mozilla::NotNull<*const root::mozilla::Encoding>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -34431,7 +34470,7 @@ pub mod root {
root::RefPtr<root::mozilla::StyleSheet> ) ));
}
#[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::<root::nsTArray<*mut root::mozilla::StyleSheet>>()
, 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::<root::nsTArray<*mut root::mozilla::StyleSheet>>()
, 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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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::<root::nsTArray<*mut root::mozilla::StyleSheet>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -34781,7 +34820,7 @@ pub mod root {
root::RefPtr<root::nsCSSFontFaceRule> ) ));
}
#[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::<root::nsTArray<*mut root::nsIContent>>()
, 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::<root::nsTArray<*mut root::nsIContent>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -34849,7 +34888,7 @@ pub mod root {
root::RefPtr<root::mozilla::CSSStyleSheet> ) ));
}
#[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::<root::nsTArray<*mut root::mozilla::StyleSheet>>()
, 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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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<root::nsIWeakReference> ) ));
}
#[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::<root::nsTArray<*mut ::std::os::raw::c_void>>()
, 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::<root::nsTArray<*mut root::mozilla::dom::AudioContext>>()
, 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::<root::nsTArray<*mut root::nsISupports>>()
, 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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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<root::nsIURI> ) ));
}
#[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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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<f64> ) ));
}
#[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::<root::nsTArray<*mut root::mozilla::dom::Element>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -35944,7 +35983,7 @@ pub mod root {
root::mozilla::UniquePtr<root::ProfilerBacktrace> ) ));
}
#[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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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<root::nsIAtom> ) ));
}
#[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::<root::nsTArray<*mut root::mozilla::CounterStyle>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -36045,7 +36084,7 @@ pub mod root {
root::nsCOMPtr<root::nsIRunnable> ) ));
}
#[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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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<root::mozilla::css::GridNamedArea> ) ));
}
#[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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::nsTArray<::nsstring::nsStringRepr> ) ));
assert_eq!(::std::mem::align_of::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::nsTArray<::nsstring::nsStringRepr> ) ));
assert_eq!(::std::mem::align_of::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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::<root::nsTArray<root::nsStyleGradientStop>>()
, 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<root::nsTArray<::nsstring::nsStringRepr>> ) ));
}
#[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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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<root::nsStyleCoord> ) ));
}
#[test]
fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_13() {
assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::nsTArray<::nsstring::nsStringRepr> ) ));
assert_eq!(::std::mem::align_of::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::nsTArray<::nsstring::nsStringRepr> ) ));
assert_eq!(::std::mem::align_of::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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::<root::RefPtr<root::nsIAtom>>() ,
8usize , concat ! (
@ -36932,7 +36971,7 @@ pub mod root {
root::RefPtr<root::nsStyleImageRequest> ) ));
}
#[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::<root::nsTArray<*mut root::nsISupports>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -37169,7 +37208,7 @@ pub mod root {
root::nsCOMPtr<root::nsIURI> ) ));
}
#[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::<root::nsTArray<*mut root::nsIContent>>()
, 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::<root::nsTArray<*mut root::nsIContent>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -37268,7 +37307,7 @@ pub mod root {
root::RefPtr<root::mozilla::dom::ShadowRoot> ) ));
}
#[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::<root::nsTArray<*mut root::nsIContent>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -37542,7 +37581,7 @@ pub mod root {
root::nsRefPtrHashKey<root::mozilla::dom::Element> ) ));
}
#[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::<root::nsTArray<*mut root::nsIContent>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -37564,7 +37603,7 @@ pub mod root {
root::RefPtr<root::mozilla::dom::Element> ) ));
}
#[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::<root::nsTArray<*mut root::nsIContent>>()
, 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::<root::nsTArray<*mut root::nsIContent>>()
, 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::<root::nsTArray<root::mozilla::FontFamilyName>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::nsTArray<root::mozilla::FontFamilyName> ) ));
assert_eq!(::std::mem::align_of::<root::nsTArray<root::mozilla::FontFamilyName>>()
, 8usize , concat ! (
"Alignment of template specialization: " , stringify ! (
root::nsTArray<root::mozilla::FontFamilyName> ) ));
}
#[test]
fn __bindgen_test_layout_nsTArray_open0_FontFamilyName_close0_instantiation_5() {
assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::FontFamilyName>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::nsTArray<root::mozilla::FontFamilyName> ) ));
assert_eq!(::std::mem::align_of::<root::nsTArray<root::mozilla::FontFamilyName>>()
, 8usize , concat ! (
"Alignment of template specialization: " , stringify ! (
root::nsTArray<root::mozilla::FontFamilyName> ) ));
}
#[test]
fn __bindgen_test_layout_nsTArray_open0_unsigned_int_close0_instantiation_6() {
assert_eq!(::std::mem::size_of::<root::nsTArray<::std::os::raw::c_uint>>()
, 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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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<root::mozilla::gfx::FontVariation> ) ));
}
#[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::<root::nsTArray<*mut root::mozilla::css::DocumentRule>>()
, 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::<root::nsTArray<*mut root::mozilla::css::DocumentRule>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (

View file

@ -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::<FontFamilyListRefCnt>() ,
24usize , concat ! (
"Size of: " , stringify ! ( FontFamilyListRefCnt )
));
assert_eq! (::std::mem::align_of::<FontFamilyListRefCnt>() ,
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<T> {
pub mBasePtr: T,
pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
}
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<root::mozilla::FontFamilyName>,
}
pub type SharedFontList_HasThreadSafeRefCnt = root::mozilla::TrueType;
extern "C" {
#[link_name = "_ZN7mozilla14SharedFontList6sEmptyE"]
pub static mut SharedFontList_sEmpty:
root::mozilla::StaticRefPtr<root::mozilla::SharedFontList>;
}
#[test]
fn bindgen_test_layout_SharedFontList() {
assert_eq!(::std::mem::size_of::<SharedFontList>() , 16usize ,
concat ! ( "Size of: " , stringify ! ( SharedFontList )
));
assert_eq! (::std::mem::align_of::<SharedFontList>() , 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::<root::mozilla::StaticRefPtr<root::mozilla::SharedFontList>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::mozilla::StaticRefPtr<root::mozilla::SharedFontList>
) ));
assert_eq!(::std::mem::align_of::<root::mozilla::StaticRefPtr<root::mozilla::SharedFontList>>()
, 8usize , concat ! (
"Alignment of template specialization: " , stringify !
(
root::mozilla::StaticRefPtr<root::mozilla::SharedFontList>
) ));
}
/// 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<root::mozilla::FontFamilyName>,
pub mFontlist: root::mozilla::NotNull<root::RefPtr<root::mozilla::SharedFontList>>,
pub mDefaultFontType: root::mozilla::FontFamilyType,
}
#[test]
@ -4226,12 +4254,6 @@ pub mod root {
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct NotNull<T> {
pub mBasePtr: T,
pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
}
#[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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::nsTArray<::nsstring::nsStringRepr> ) ));
assert_eq!(::std::mem::align_of::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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::<root::nsTArray<root::mozilla::FontFamilyName>>()
, 8usize , concat ! (
@ -32434,6 +32435,52 @@ pub mod root {
root::nsTArray<root::mozilla::FontFamilyName> ) ));
}
#[test]
fn __bindgen_test_layout_nsTArray_open0_FontFamilyName_close0_instantiation_2() {
assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::FontFamilyName>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::nsTArray<root::mozilla::FontFamilyName> ) ));
assert_eq!(::std::mem::align_of::<root::nsTArray<root::mozilla::FontFamilyName>>()
, 8usize , concat ! (
"Alignment of template specialization: " , stringify ! (
root::nsTArray<root::mozilla::FontFamilyName> ) ));
}
#[test]
fn __bindgen_test_layout_nsTArray_open0_FontFamilyName_close0_instantiation_3() {
assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::FontFamilyName>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::nsTArray<root::mozilla::FontFamilyName> ) ));
assert_eq!(::std::mem::align_of::<root::nsTArray<root::mozilla::FontFamilyName>>()
, 8usize , concat ! (
"Alignment of template specialization: " , stringify ! (
root::nsTArray<root::mozilla::FontFamilyName> ) ));
}
#[test]
fn __bindgen_test_layout_NotNull_open0_RefPtr_open1_SharedFontList_close1_close0_instantiation() {
assert_eq!(::std::mem::size_of::<root::mozilla::NotNull<root::RefPtr<root::mozilla::SharedFontList>>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::mozilla::NotNull<root::RefPtr<root::mozilla::SharedFontList>>
) ));
assert_eq!(::std::mem::align_of::<root::mozilla::NotNull<root::RefPtr<root::mozilla::SharedFontList>>>()
, 8usize , concat ! (
"Alignment of template specialization: " , stringify ! (
root::mozilla::NotNull<root::RefPtr<root::mozilla::SharedFontList>>
) ));
}
#[test]
fn __bindgen_test_layout_RefPtr_open0_SharedFontList_close0_instantiation() {
assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::SharedFontList>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::RefPtr<root::mozilla::SharedFontList> ) ));
assert_eq!(::std::mem::align_of::<root::RefPtr<root::mozilla::SharedFontList>>()
, 8usize , concat ! (
"Alignment of template specialization: " , stringify ! (
root::RefPtr<root::mozilla::SharedFontList> ) ));
}
#[test]
fn __bindgen_test_layout_nsTArray_open0_unsigned_int_close0_instantiation() {
assert_eq!(::std::mem::size_of::<root::nsTArray<::std::os::raw::c_uint>>()
, 8usize , concat ! (
@ -32546,7 +32593,7 @@ pub mod root {
root::nsTArray<root::mozilla::gfx::FontVariation> ) ));
}
#[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::<root::nsTArray<*mut root::nsCSSSelector>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -32913,7 +32960,7 @@ pub mod root {
root::RefPtr<root::mozilla::ServoStyleContext> ) ));
}
#[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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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::<root::nsTArray<*mut root::mozilla::StyleSheet>>()
, 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::<root::std::iterator>() , 1usize ,
concat ! (
"Size of template specialization: " , stringify ! (
@ -33407,7 +33454,7 @@ pub mod root {
root::RefPtr<root::mozilla::StyleSheet> ) ));
}
#[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::<root::nsTArray<*mut root::mozilla::dom::Element>>()
, 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::<root::nsTArray<*mut root::mozilla::dom::Element>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -33587,7 +33634,7 @@ pub mod root {
root::RefPtr<root::mozilla::URLExtraData> ) ));
}
#[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::<root::mozilla::NotNull<*const root::mozilla::Encoding>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -34022,7 +34069,7 @@ pub mod root {
root::RefPtr<root::mozilla::StyleSheet> ) ));
}
#[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::<root::nsTArray<*mut root::mozilla::StyleSheet>>()
, 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::<root::nsTArray<*mut root::mozilla::StyleSheet>>()
, 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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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::<root::nsTArray<*mut root::mozilla::StyleSheet>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -34372,7 +34419,7 @@ pub mod root {
root::RefPtr<root::nsCSSFontFaceRule> ) ));
}
#[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::<root::nsTArray<*mut root::nsIContent>>()
, 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::<root::nsTArray<*mut root::nsIContent>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -34440,7 +34487,7 @@ pub mod root {
root::RefPtr<root::mozilla::CSSStyleSheet> ) ));
}
#[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::<root::nsTArray<*mut root::mozilla::StyleSheet>>()
, 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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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::<root::nsTArray<*mut ::std::os::raw::c_void>>()
, 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::<root::nsTArray<*mut root::mozilla::dom::AudioContext>>()
, 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::<root::nsTArray<*mut root::nsISupports>>()
, 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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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<f64> ) ));
}
#[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::<root::nsTArray<*mut root::mozilla::dom::Element>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -35522,7 +35569,7 @@ pub mod root {
root::mozilla::UniquePtr<root::ProfilerBacktrace> ) ));
}
#[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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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<root::nsIAtom> ) ));
}
#[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::<root::nsTArray<*mut root::mozilla::CounterStyle>>()
, 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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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<root::mozilla::css::GridNamedArea> ) ));
}
#[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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::nsTArray<::nsstring::nsStringRepr> ) ));
assert_eq!(::std::mem::align_of::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::nsTArray<::nsstring::nsStringRepr> ) ));
assert_eq!(::std::mem::align_of::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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::<root::nsTArray<root::nsStyleGradientStop>>()
, 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<root::nsTArray<::nsstring::nsStringRepr>> ) ));
}
#[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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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<root::nsStyleCoord> ) ));
}
#[test]
fn __bindgen_test_layout_nsTArray_open0_nsTString_open1_char16_t_close1_close0_instantiation_13() {
assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::nsTArray<::nsstring::nsStringRepr> ) ));
assert_eq!(::std::mem::align_of::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::nsTArray<::nsstring::nsStringRepr> ) ));
assert_eq!(::std::mem::align_of::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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::<root::RefPtr<root::nsIAtom>>() ,
8usize , concat ! (
@ -36510,7 +36557,7 @@ pub mod root {
root::RefPtr<root::nsStyleImageRequest> ) ));
}
#[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::<root::nsTArray<*mut root::nsISupports>>()
, 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::<root::nsTArray<*mut root::nsIContent>>()
, 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::<root::nsTArray<*mut root::nsIContent>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -36846,7 +36893,7 @@ pub mod root {
root::RefPtr<root::mozilla::dom::ShadowRoot> ) ));
}
#[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::<root::nsTArray<*mut root::nsIContent>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -37120,7 +37167,7 @@ pub mod root {
root::nsRefPtrHashKey<root::mozilla::dom::Element> ) ));
}
#[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::<root::nsTArray<*mut root::nsIContent>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -37142,7 +37189,7 @@ pub mod root {
root::RefPtr<root::mozilla::dom::Element> ) ));
}
#[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::<root::nsTArray<*mut root::nsIContent>>()
, 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::<root::nsTArray<*mut root::nsIContent>>()
, 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::<root::nsTArray<root::mozilla::FontFamilyName>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::nsTArray<root::mozilla::FontFamilyName> ) ));
assert_eq!(::std::mem::align_of::<root::nsTArray<root::mozilla::FontFamilyName>>()
, 8usize , concat ! (
"Alignment of template specialization: " , stringify ! (
root::nsTArray<root::mozilla::FontFamilyName> ) ));
}
#[test]
fn __bindgen_test_layout_nsTArray_open0_FontFamilyName_close0_instantiation_5() {
assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::FontFamilyName>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::nsTArray<root::mozilla::FontFamilyName> ) ));
assert_eq!(::std::mem::align_of::<root::nsTArray<root::mozilla::FontFamilyName>>()
, 8usize , concat ! (
"Alignment of template specialization: " , stringify ! (
root::nsTArray<root::mozilla::FontFamilyName> ) ));
}
#[test]
fn __bindgen_test_layout_nsTArray_open0_unsigned_int_close0_instantiation_6() {
assert_eq!(::std::mem::size_of::<root::nsTArray<::std::os::raw::c_uint>>()
, 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::<root::nsTArray<::nsstring::nsStringRepr>>()
, 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<root::mozilla::gfx::FontVariation> ) ));
}
#[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::<root::nsTArray<*mut root::mozilla::css::DocumentRule>>()
, 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::<root::nsTArray<*mut root::mozilla::css::DocumentRule>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (

View file

@ -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);

View file

@ -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 {
if let Some(generic) = v.0.single_generic() {
self.gecko.mGenericID = generic;
}
unsafe { Gecko_FontFamilyList_AppendGeneric(list, family_type); }
}
}
}
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) {

View file

@ -68,20 +68,27 @@ macro_rules! impl_gecko_keyword_conversions {
}
</%def>
<%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<FontFamily>);
#[cfg(feature = "gecko")]
#[derive(Clone, Debug)]
pub struct FontFamilyList(pub RefPtr<structs::SharedFontList>);
#[cfg(feature = "gecko")]
impl Hash for FontFamilyList {
fn hash<H>(&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<FontFamily>) -> FontFamilyList {
FontFamilyList(families)
}
#[cfg(feature = "gecko")]
pub fn new(families: Vec<FontFamily>) -> 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<FontFamily> {
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<u8> {
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<structs::FontFamilyName>,
cur: usize,
}
#[cfg(feature = "gecko")]
impl<'a> Iterator for FontFamilyNameIter<'a> {
type Item = FontFamily;
fn next(&mut self) -> Option<Self::Item> {
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<FontFamily>);
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"))])
)
}
/// <family-name>#
@ -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<FontFamily>),
Values(FontFamilyList),
System(SystemFont),
}
@ -328,16 +503,12 @@ 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<u8> {
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
}
}
impl ToComputedValue for SpecifiedValue {
type ComputedValue = computed_value::T;
@ -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<Self, ParseError<'i>> {
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<W>(&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::<Vec<_>>();
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

View file

@ -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);
})