Auto merge of #16309 - heycam:restyle-reconstruct, r=bholley

style: add a "for frame reconstruction" mode for restyle traversal

This is the Servo part of https://bugzilla.mozilla.org/show_bug.cgi?id=1351535.

<!-- 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/16309)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2017-04-09 01:04:57 -05:00 committed by GitHub
commit 2f67f69e89
10 changed files with 421 additions and 412 deletions

View file

@ -523,7 +523,7 @@ impl LayoutThread {
local_context_creation_data: Mutex::new(thread_local_style_context_creation_data),
timer: self.timer.clone(),
quirks_mode: self.quirks_mode.unwrap(),
animation_only_restyle: false,
traversal_flags: TraversalFlags::empty(),
},
image_cache: self.image_cache.clone(),
font_cache_thread: Mutex::new(self.font_cache_thread.clone()),

View file

@ -321,6 +321,7 @@ mod bindings {
"mozilla::css::SheetParsingMode",
"mozilla::HalfCorner",
"mozilla::PropertyStyleAnimationValuePair",
"mozilla::TraversalRestyleBehavior",
"mozilla::TraversalRootBehavior",
"mozilla::StyleShapeRadius",
"mozilla::StyleGrid.*",
@ -616,6 +617,7 @@ mod bindings {
"RawGeckoURLExtraData",
"RefPtr",
"CSSPseudoClassType",
"TraversalRestyleBehavior",
"TraversalRootBehavior",
"ComputedTimingFunction_BeforeFlag",
"FontFamilyList",

View file

@ -29,7 +29,7 @@ use stylist::Stylist;
use thread_state;
use time;
use timer::Timer;
use traversal::DomTraversal;
use traversal::{DomTraversal, TraversalFlags};
/// This structure is used to create a local style context from a shared one.
pub struct ThreadLocalStyleContextCreationInfo {
@ -89,8 +89,8 @@ pub struct SharedStyleContext<'a> {
/// The QuirksMode state which the document needs to be rendered with
pub quirks_mode: QuirksMode,
/// True if the traversal is processing only animation restyles.
pub animation_only_restyle: bool,
/// Flags controlling how we traverse the tree.
pub traversal_flags: TraversalFlags,
}
impl<'a> SharedStyleContext<'a> {

View file

@ -223,6 +223,13 @@ impl StoredRestyleHint {
StoredRestyleHint(RESTYLE_SELF | RESTYLE_DESCENDANTS)
}
/// Creates a restyle hint that forces the element and all its later
/// siblings to have their whole subtrees restyled, including the elements
/// themselves.
pub fn subtree_and_later_siblings() -> Self {
StoredRestyleHint(RESTYLE_SELF | RESTYLE_DESCENDANTS | RESTYLE_LATER_SIBLINGS)
}
/// Returns true if the hint indicates that our style may be invalidated.
pub fn has_self_invalidations(&self) -> bool {
self.0.intersects(RestyleHint::for_self())

View file

@ -22,6 +22,7 @@ use gecko_bindings::structs::RawGeckoStyleAnimationList;
use gecko_bindings::structs::RawGeckoURLExtraData;
use gecko_bindings::structs::RefPtr;
use gecko_bindings::structs::CSSPseudoClassType;
use gecko_bindings::structs::TraversalRestyleBehavior;
use gecko_bindings::structs::TraversalRootBehavior;
use gecko_bindings::structs::ComputedTimingFunction_BeforeFlag;
use gecko_bindings::structs::FontFamilyList;
@ -1394,6 +1395,12 @@ extern "C" {
extern "C" {
pub fn Gecko_Construct_nsStyleVariables(ptr: *mut nsStyleVariables);
}
extern "C" {
pub fn Gecko_RegisterProfilerThread(name: *const ::std::os::raw::c_char);
}
extern "C" {
pub fn Gecko_UnregisterProfilerThread();
}
extern "C" {
pub fn Servo_Element_ClearData(node: RawGeckoElementBorrowed);
}
@ -1894,7 +1901,8 @@ extern "C" {
extern "C" {
pub fn Servo_TraverseSubtree(root: RawGeckoElementBorrowed,
set: RawServoStyleSetBorrowed,
root_behavior: TraversalRootBehavior)
root_behavior: TraversalRootBehavior,
restyle_behavior: TraversalRestyleBehavior)
-> bool;
}
extern "C" {

View file

@ -1074,41 +1074,27 @@ pub mod root {
pub type iterator_pointer<_Pointer> = _Pointer;
pub type iterator_reference<_Reference> = _Reference;
#[repr(C)]
#[derive(Debug)]
pub struct __atomic_base<_ITp> {
pub _M_i: root::std::__atomic_base___int_type<_ITp>,
}
pub type __atomic_base___int_type<_ITp> = _ITp;
pub type atomic_uint =
root::std::__atomic_base<::std::os::raw::c_uint>;
pub type atomic_ulong =
root::std::__atomic_base<::std::os::raw::c_ulong>;
#[repr(C)]
#[derive(Debug)]
#[derive(Debug, Copy, Clone)]
pub struct atomic<_Tp> {
pub _M_i: _Tp,
pub _phantom_0: ::std::marker::PhantomData<_Tp>,
}
#[test]
fn __bindgen_test_layout_template_1() {
assert_eq!(::std::mem::size_of::<root::std::atomic<::std::os::raw::c_uint>>()
, 4usize , concat ! (
"Size of template specialization: " , stringify ! (
root::std::atomic<::std::os::raw::c_uint> ) ));
assert_eq!(::std::mem::align_of::<root::std::atomic<::std::os::raw::c_uint>>()
, 4usize , concat ! (
assert_eq!(::std::mem::size_of::<u32>() , 4usize , concat ! (
"Size of template specialization: " , stringify ! ( u32
) ));
assert_eq!(::std::mem::align_of::<u32>() , 4usize , concat ! (
"Alignment of template specialization: " , stringify !
( root::std::atomic<::std::os::raw::c_uint> ) ));
( u32 ) ));
}
#[test]
fn __bindgen_test_layout_template_2() {
assert_eq!(::std::mem::size_of::<root::std::atomic<::std::os::raw::c_ulong>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::std::atomic<::std::os::raw::c_ulong> ) ));
assert_eq!(::std::mem::align_of::<root::std::atomic<::std::os::raw::c_ulong>>()
, 8usize , concat ! (
assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! (
"Size of template specialization: " , stringify ! ( u64
) ));
assert_eq!(::std::mem::align_of::<u64>() , 8usize , concat ! (
"Alignment of template specialization: " , stringify !
( root::std::atomic<::std::os::raw::c_ulong> ) ));
( u64 ) ));
}
pub mod chrono {
#[allow(unused_imports)]
@ -4512,7 +4498,7 @@ pub mod root {
#[repr(C)]
#[derive(Debug)]
pub struct ThreadSafeAutoRefCnt {
pub mValue: root::std::atomic<::std::os::raw::c_ulong>,
pub mValue: u64,
}
pub const ThreadSafeAutoRefCnt_isThreadSafe: bool = true;
#[test]
@ -6531,6 +6517,9 @@ pub mod root {
Normal = 0,
UnstyledChildrenOnly = 1,
}
#[repr(i32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum TraversalRestyleBehavior { Normal = 0, ForReconstruct = 1, }
pub const UpdateAnimationsTasks_CSSAnimations:
root::mozilla::UpdateAnimationsTasks =
1;
@ -11823,7 +11812,7 @@ pub mod root {
#[repr(C)]
#[derive(Debug)]
pub struct nsStringBuffer {
pub mRefCount: root::std::atomic<::std::os::raw::c_uint>,
pub mRefCount: u32,
pub mStorageSize: u32,
}
#[test]
@ -18665,7 +18654,7 @@ pub mod root {
fn clone(&self) -> Self { *self }
}
pub type nsFrameState_size_t = u64;
pub const nsFrameState_NS_STATE_FLEX_CHILDREN_REORDERED:
pub const nsFrameState_NS_STATE_FLEX_NORMAL_FLOW_CHILDREN_IN_CSS_ORDER:
root::nsFrameState =
nsFrameState::NS_STATE_BOX_CHILD_RESERVED;
pub const nsFrameState_NS_STATE_FLEX_IS_LEGACY_WEBKIT_BOX:
@ -27667,28 +27656,6 @@ pub mod root {
}
#[test]
fn __bindgen_test_layout_template_22() {
assert_eq!(::std::mem::size_of::<root::std::__atomic_base<::std::os::raw::c_uint>>()
, 4usize , concat ! (
"Size of template specialization: " , stringify ! (
root::std::__atomic_base<::std::os::raw::c_uint> ) ));
assert_eq!(::std::mem::align_of::<root::std::__atomic_base<::std::os::raw::c_uint>>()
, 4usize , concat ! (
"Alignment of template specialization: " , stringify ! (
root::std::__atomic_base<::std::os::raw::c_uint> ) ));
}
#[test]
fn __bindgen_test_layout_template_23() {
assert_eq!(::std::mem::size_of::<root::std::__atomic_base<::std::os::raw::c_ulong>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::std::__atomic_base<::std::os::raw::c_ulong> ) ));
assert_eq!(::std::mem::align_of::<root::std::__atomic_base<::std::os::raw::c_ulong>>()
, 8usize , concat ! (
"Alignment of template specialization: " , stringify ! (
root::std::__atomic_base<::std::os::raw::c_ulong> ) ));
}
#[test]
fn __bindgen_test_layout_template_24() {
assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<[::std::os::raw::c_char; 0usize],
root::JS::FreePolicy>>()
, 8usize , concat ! (
@ -27705,7 +27672,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_25() {
fn __bindgen_test_layout_template_23() {
assert_eq!(::std::mem::size_of::<root::JS::TenuredHeap<*mut root::JSObject>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27716,7 +27683,7 @@ pub mod root {
root::JS::TenuredHeap<*mut root::JSObject> ) ));
}
#[test]
fn __bindgen_test_layout_template_26() {
fn __bindgen_test_layout_template_24() {
assert_eq!(::std::mem::size_of::<root::JS::Heap<*mut root::JSObject>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27727,7 +27694,7 @@ pub mod root {
root::JS::Heap<*mut root::JSObject> ) ));
}
#[test]
fn __bindgen_test_layout_template_27() {
fn __bindgen_test_layout_template_25() {
assert_eq!(::std::mem::size_of::<root::JS::Heap<root::JS::Value>>() ,
8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27738,7 +27705,7 @@ pub mod root {
root::JS::Heap<root::JS::Value> ) ));
}
#[test]
fn __bindgen_test_layout_template_28() {
fn __bindgen_test_layout_template_26() {
assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<[root::nsDependentSubstring; 0usize]>>()
, 1usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27751,7 +27718,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_29() {
fn __bindgen_test_layout_template_27() {
assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<[root::nsDependentCSubstring; 0usize]>>()
, 1usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27764,7 +27731,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_30() {
fn __bindgen_test_layout_template_28() {
assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsCString>>() ,
8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27775,7 +27742,7 @@ pub mod root {
root::nsTArray<root::nsCString> ) ));
}
#[test]
fn __bindgen_test_layout_template_31() {
fn __bindgen_test_layout_template_29() {
assert_eq!(::std::mem::size_of::<root::mozilla::binding_danger::TErrorResult<root::mozilla::binding_danger::JustAssertCleanupPolicy>>()
, 32usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27788,7 +27755,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_32() {
fn __bindgen_test_layout_template_30() {
assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStringBuffer>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27799,7 +27766,7 @@ pub mod root {
root::already_AddRefed<root::nsStringBuffer> ) ));
}
#[test]
fn __bindgen_test_layout_template_33() {
fn __bindgen_test_layout_template_31() {
assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27810,7 +27777,7 @@ pub mod root {
root::already_AddRefed<root::nsIAtom> ) ));
}
#[test]
fn __bindgen_test_layout_template_34() {
fn __bindgen_test_layout_template_32() {
assert_eq!(::std::mem::size_of::<root::JS::DeletePolicy<root::JSErrorNotes_Note>>()
, 1usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27821,7 +27788,7 @@ pub mod root {
root::JS::DeletePolicy<root::JSErrorNotes_Note> ) ));
}
#[test]
fn __bindgen_test_layout_template_35() {
fn __bindgen_test_layout_template_33() {
assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::JSErrorNotes_Note,
root::JS::DeletePolicy<root::JSErrorNotes_Note>>>()
, 8usize , concat ! (
@ -27838,7 +27805,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_36() {
fn __bindgen_test_layout_template_34() {
assert_eq!(::std::mem::size_of::<root::std::iterator<root::std::input_iterator_tag,
root::mozilla::UniquePtr<root::JSErrorNotes_Note,
root::JS::DeletePolicy<root::JSErrorNotes_Note>>,
@ -27879,7 +27846,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_37() {
fn __bindgen_test_layout_template_35() {
assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIRunnable>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27890,7 +27857,7 @@ pub mod root {
root::already_AddRefed<root::nsIRunnable> ) ));
}
#[test]
fn __bindgen_test_layout_template_38() {
fn __bindgen_test_layout_template_36() {
assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIPrincipal>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27901,7 +27868,7 @@ pub mod root {
root::nsCOMPtr<root::nsIPrincipal> ) ));
}
#[test]
fn __bindgen_test_layout_template_39() {
fn __bindgen_test_layout_template_37() {
assert_eq!(::std::mem::size_of::<[u64; 29usize]>() , 232usize , concat
! (
"Size of template specialization: " , stringify ! (
@ -27912,7 +27879,7 @@ pub mod root {
[u64; 29usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_40() {
fn __bindgen_test_layout_template_38() {
assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27923,7 +27890,7 @@ pub mod root {
root::already_AddRefed<root::nsIURI> ) ));
}
#[test]
fn __bindgen_test_layout_template_41() {
fn __bindgen_test_layout_template_39() {
assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::dom::AnonymousContent>>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27936,7 +27903,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_42() {
fn __bindgen_test_layout_template_40() {
assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27947,7 +27914,7 @@ pub mod root {
root::RefPtr<root::mozilla::StyleSheet> ) ));
}
#[test]
fn __bindgen_test_layout_template_43() {
fn __bindgen_test_layout_template_41() {
assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::Element>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27958,7 +27925,7 @@ pub mod root {
root::RefPtr<root::mozilla::dom::Element> ) ));
}
#[test]
fn __bindgen_test_layout_template_44() {
fn __bindgen_test_layout_template_42() {
assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::dom::Element>>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27971,7 +27938,7 @@ pub mod root {
));
}
#[test]
fn __bindgen_test_layout_template_45() {
fn __bindgen_test_layout_template_43() {
assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIObserver>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27982,7 +27949,7 @@ pub mod root {
root::nsCOMPtr<root::nsIObserver> ) ));
}
#[test]
fn __bindgen_test_layout_template_46() {
fn __bindgen_test_layout_template_44() {
assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsCOMPtr<root::nsIObserver>>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27993,7 +27960,7 @@ pub mod root {
root::nsTArray<root::nsCOMPtr<root::nsIObserver>> ) ));
}
#[test]
fn __bindgen_test_layout_template_47() {
fn __bindgen_test_layout_template_45() {
assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIDocument>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28004,7 +27971,7 @@ pub mod root {
root::already_AddRefed<root::nsIDocument> ) ));
}
#[test]
fn __bindgen_test_layout_template_48() {
fn __bindgen_test_layout_template_46() {
assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsContentList>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28015,7 +27982,7 @@ pub mod root {
root::already_AddRefed<root::nsContentList> ) ));
}
#[test]
fn __bindgen_test_layout_template_49() {
fn __bindgen_test_layout_template_47() {
assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsINode>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28026,7 +27993,7 @@ pub mod root {
root::already_AddRefed<root::nsINode> ) ));
}
#[test]
fn __bindgen_test_layout_template_50() {
fn __bindgen_test_layout_template_48() {
assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIWeakReference>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28037,7 +28004,7 @@ pub mod root {
root::nsCOMPtr<root::nsIWeakReference> ) ));
}
#[test]
fn __bindgen_test_layout_template_51() {
fn __bindgen_test_layout_template_49() {
assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! (
"Size of template specialization: " , stringify ! ( u64 )
));
@ -28046,7 +28013,7 @@ pub mod root {
u64 ) ));
}
#[test]
fn __bindgen_test_layout_template_52() {
fn __bindgen_test_layout_template_50() {
assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsRect>>() ,
8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28057,7 +28024,7 @@ pub mod root {
root::nsTArray<root::nsRect> ) ));
}
#[test]
fn __bindgen_test_layout_template_53() {
fn __bindgen_test_layout_template_51() {
assert_eq!(::std::mem::size_of::<[u64; 29usize]>() , 232usize , concat
! (
"Size of template specialization: " , stringify ! (
@ -28068,7 +28035,7 @@ pub mod root {
[u64; 29usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_54() {
fn __bindgen_test_layout_template_52() {
assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::nsIContent>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28079,7 +28046,7 @@ pub mod root {
root::nsTArray<*mut root::nsIContent> ) ));
}
#[test]
fn __bindgen_test_layout_template_55() {
fn __bindgen_test_layout_template_53() {
assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::CSSValue>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28090,7 +28057,7 @@ pub mod root {
root::already_AddRefed<root::mozilla::dom::CSSValue> ) ));
}
#[test]
fn __bindgen_test_layout_template_56() {
fn __bindgen_test_layout_template_54() {
assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::mozilla::dom::TimeoutManager>>()
, 1usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28103,7 +28070,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_57() {
fn __bindgen_test_layout_template_55() {
assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsISupports>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28114,7 +28081,7 @@ pub mod root {
root::already_AddRefed<root::nsISupports> ) ));
}
#[test]
fn __bindgen_test_layout_template_58() {
fn __bindgen_test_layout_template_56() {
assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIRunnable>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28125,7 +28092,7 @@ pub mod root {
root::nsCOMPtr<root::nsIRunnable> ) ));
}
#[test]
fn __bindgen_test_layout_template_59() {
fn __bindgen_test_layout_template_57() {
assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIContent>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28136,7 +28103,7 @@ pub mod root {
root::already_AddRefed<root::nsIContent> ) ));
}
#[test]
fn __bindgen_test_layout_template_60() {
fn __bindgen_test_layout_template_58() {
assert_eq!(::std::mem::size_of::<[u64; 6usize]>() , 48usize , concat !
(
"Size of template specialization: " , stringify ! (
@ -28147,7 +28114,7 @@ pub mod root {
[u64; 6usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_61() {
fn __bindgen_test_layout_template_59() {
assert_eq!(::std::mem::size_of::<root::mozilla::OwningNonNull<root::nsINode>>()
, 16usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28158,6 +28125,28 @@ pub mod root {
root::mozilla::OwningNonNull<root::nsINode> ) ));
}
#[test]
fn __bindgen_test_layout_template_60() {
assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat !
(
"Size of template specialization: " , stringify ! (
[u32; 2usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 2usize]>() , 4usize , concat !
(
"Alignment of template specialization: " , stringify ! (
[u32; 2usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_61() {
assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat !
(
"Size of template specialization: " , stringify ! (
[u32; 2usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 2usize]>() , 4usize , concat !
(
"Alignment of template specialization: " , stringify ! (
[u32; 2usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_62() {
assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat !
(
@ -28170,14 +28159,14 @@ pub mod root {
}
#[test]
fn __bindgen_test_layout_template_63() {
assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat !
assert_eq!(::std::mem::size_of::<[u32; 4usize]>() , 16usize , concat !
(
"Size of template specialization: " , stringify ! (
[u32; 2usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 2usize]>() , 4usize , concat !
[u32; 4usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 4usize]>() , 4usize , concat !
(
"Alignment of template specialization: " , stringify ! (
[u32; 2usize] ) ));
[u32; 4usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_64() {
@ -28192,6 +28181,17 @@ pub mod root {
}
#[test]
fn __bindgen_test_layout_template_65() {
assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat !
(
"Size of template specialization: " , stringify ! (
[u32; 2usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 2usize]>() , 4usize , concat !
(
"Alignment of template specialization: " , stringify ! (
[u32; 2usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_66() {
assert_eq!(::std::mem::size_of::<[u32; 4usize]>() , 16usize , concat !
(
"Size of template specialization: " , stringify ! (
@ -28202,26 +28202,15 @@ pub mod root {
[u32; 4usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_66() {
assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat !
(
"Size of template specialization: " , stringify ! (
[u32; 2usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 2usize]>() , 4usize , concat !
(
"Alignment of template specialization: " , stringify ! (
[u32; 2usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_67() {
assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat !
assert_eq!(::std::mem::size_of::<[u32; 4usize]>() , 16usize , concat !
(
"Size of template specialization: " , stringify ! (
[u32; 2usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 2usize]>() , 4usize , concat !
[u32; 4usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 4usize]>() , 4usize , concat !
(
"Alignment of template specialization: " , stringify ! (
[u32; 2usize] ) ));
[u32; 4usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_68() {
@ -28236,28 +28225,6 @@ pub mod root {
}
#[test]
fn __bindgen_test_layout_template_69() {
assert_eq!(::std::mem::size_of::<[u32; 4usize]>() , 16usize , concat !
(
"Size of template specialization: " , stringify ! (
[u32; 4usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 4usize]>() , 4usize , concat !
(
"Alignment of template specialization: " , stringify ! (
[u32; 4usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_70() {
assert_eq!(::std::mem::size_of::<[u32; 4usize]>() , 16usize , concat !
(
"Size of template specialization: " , stringify ! (
[u32; 4usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 4usize]>() , 4usize , concat !
(
"Alignment of template specialization: " , stringify ! (
[u32; 4usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_71() {
assert_eq!(::std::mem::size_of::<u32>() , 4usize , concat ! (
"Size of template specialization: " , stringify ! ( u32 )
));
@ -28266,6 +28233,28 @@ pub mod root {
u32 ) ));
}
#[test]
fn __bindgen_test_layout_template_70() {
assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat !
(
"Size of template specialization: " , stringify ! (
[u32; 2usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 2usize]>() , 4usize , concat !
(
"Alignment of template specialization: " , stringify ! (
[u32; 2usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_71() {
assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat !
(
"Size of template specialization: " , stringify ! (
[u32; 2usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 2usize]>() , 4usize , concat !
(
"Alignment of template specialization: " , stringify ! (
[u32; 2usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_72() {
assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat !
(
@ -28278,28 +28267,6 @@ pub mod root {
}
#[test]
fn __bindgen_test_layout_template_73() {
assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat !
(
"Size of template specialization: " , stringify ! (
[u32; 2usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 2usize]>() , 4usize , concat !
(
"Alignment of template specialization: " , stringify ! (
[u32; 2usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_74() {
assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat !
(
"Size of template specialization: " , stringify ! (
[u32; 2usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 2usize]>() , 4usize , concat !
(
"Alignment of template specialization: " , stringify ! (
[u32; 2usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_75() {
assert_eq!(::std::mem::size_of::<root::nsTArray<f64>>() , 8usize ,
concat ! (
"Size of template specialization: " , stringify ! (
@ -28310,7 +28277,7 @@ pub mod root {
root::nsTArray<f64> ) ));
}
#[test]
fn __bindgen_test_layout_template_76() {
fn __bindgen_test_layout_template_74() {
assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::DOMIntersectionObserverEntry>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28323,7 +28290,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_77() {
fn __bindgen_test_layout_template_75() {
assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::dom::DOMIntersectionObserverEntry>>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28336,7 +28303,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_78() {
fn __bindgen_test_layout_template_76() {
assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::ProfilerBacktrace,
root::ProfilerBacktraceDestructor>>()
, 8usize , concat ! (
@ -28353,7 +28320,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_79() {
fn __bindgen_test_layout_template_77() {
assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::FontFamilyName>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28364,7 +28331,7 @@ pub mod root {
root::nsTArray<root::mozilla::FontFamilyName> ) ));
}
#[test]
fn __bindgen_test_layout_template_80() {
fn __bindgen_test_layout_template_78() {
assert_eq!(::std::mem::size_of::<root::nsTArray<::std::os::raw::c_uint>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28375,7 +28342,7 @@ pub mod root {
root::nsTArray<::std::os::raw::c_uint> ) ));
}
#[test]
fn __bindgen_test_layout_template_81() {
fn __bindgen_test_layout_template_79() {
assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::FramePropertyTable_PropertyValue>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28388,7 +28355,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_82() {
fn __bindgen_test_layout_template_80() {
assert_eq!(::std::mem::size_of::<root::nsPtrHashKey<root::nsIFrame>>()
, 16usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28399,7 +28366,7 @@ pub mod root {
root::nsPtrHashKey<root::nsIFrame> ) ));
}
#[test]
fn __bindgen_test_layout_template_83() {
fn __bindgen_test_layout_template_81() {
assert_eq!(::std::mem::size_of::<[u64; 6usize]>() , 48usize , concat !
(
"Size of template specialization: " , stringify ! (
@ -28410,7 +28377,7 @@ pub mod root {
[u64; 6usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_84() {
fn __bindgen_test_layout_template_82() {
assert_eq!(::std::mem::size_of::<root::mozilla::OwningNonNull<root::mozilla::EffectCompositor_AnimationStyleRuleProcessor>>()
, 16usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28423,7 +28390,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_85() {
fn __bindgen_test_layout_template_83() {
assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::ProxyBehaviour>>()
, 1usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28434,7 +28401,7 @@ pub mod root {
root::mozilla::DefaultDelete<root::ProxyBehaviour> ) ));
}
#[test]
fn __bindgen_test_layout_template_86() {
fn __bindgen_test_layout_template_84() {
assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::URLExtraData>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28445,7 +28412,7 @@ pub mod root {
root::already_AddRefed<root::mozilla::URLExtraData> ) ));
}
#[test]
fn __bindgen_test_layout_template_87() {
fn __bindgen_test_layout_template_85() {
assert_eq!(::std::mem::size_of::<root::nsMainThreadPtrHolder<root::nsIURI>>()
, 24usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28456,7 +28423,7 @@ pub mod root {
root::nsMainThreadPtrHolder<root::nsIURI> ) ));
}
#[test]
fn __bindgen_test_layout_template_88() {
fn __bindgen_test_layout_template_86() {
assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::nsCSSValueList>>()
, 1usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28467,7 +28434,7 @@ pub mod root {
root::mozilla::DefaultDelete<root::nsCSSValueList> ) ));
}
#[test]
fn __bindgen_test_layout_template_89() {
fn __bindgen_test_layout_template_87() {
assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValueList,
root::mozilla::DefaultDelete<root::nsCSSValueList>>>()
, 8usize , concat ! (
@ -28484,7 +28451,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_90() {
fn __bindgen_test_layout_template_88() {
assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::nsCSSValuePairList>>()
, 1usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28497,7 +28464,7 @@ pub mod root {
));
}
#[test]
fn __bindgen_test_layout_template_91() {
fn __bindgen_test_layout_template_89() {
assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValuePairList,
root::mozilla::DefaultDelete<root::nsCSSValuePairList>>>()
, 8usize , concat ! (
@ -28514,7 +28481,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_92() {
fn __bindgen_test_layout_template_90() {
assert_eq!(::std::mem::size_of::<[u64; 2usize]>() , 16usize , concat !
(
"Size of template specialization: " , stringify ! (
@ -28525,7 +28492,7 @@ pub mod root {
[u64; 2usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_93() {
fn __bindgen_test_layout_template_91() {
assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! (
"Size of template specialization: " , stringify ! ( u64 )
));
@ -28534,7 +28501,7 @@ pub mod root {
u64 ) ));
}
#[test]
fn __bindgen_test_layout_template_94() {
fn __bindgen_test_layout_template_92() {
assert_eq!(::std::mem::size_of::<[u32; 3usize]>() , 12usize , concat !
(
"Size of template specialization: " , stringify ! (
@ -28545,7 +28512,7 @@ pub mod root {
[u32; 3usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_95() {
fn __bindgen_test_layout_template_93() {
assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleImageRequest>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28556,7 +28523,7 @@ pub mod root {
root::already_AddRefed<root::nsStyleImageRequest> ) ));
}
#[test]
fn __bindgen_test_layout_template_96() {
fn __bindgen_test_layout_template_94() {
assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::nsStyleSides>>()
, 1usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28567,7 +28534,7 @@ pub mod root {
root::mozilla::DefaultDelete<root::nsStyleSides> ) ));
}
#[test]
fn __bindgen_test_layout_template_97() {
fn __bindgen_test_layout_template_95() {
assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsStyleSides,
root::mozilla::DefaultDelete<root::nsStyleSides>>>()
, 8usize , concat ! (
@ -28584,7 +28551,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_98() {
fn __bindgen_test_layout_template_96() {
assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::CachedBorderImageData>>()
, 1usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28597,7 +28564,7 @@ pub mod root {
));
}
#[test]
fn __bindgen_test_layout_template_99() {
fn __bindgen_test_layout_template_97() {
assert_eq!(::std::mem::size_of::<root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr>>()
, 32usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28608,7 +28575,7 @@ pub mod root {
root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr> ) ));
}
#[test]
fn __bindgen_test_layout_template_100() {
fn __bindgen_test_layout_template_98() {
assert_eq!(::std::mem::size_of::<root::nsTArray<root::std::pair<::nsstring::nsStringRepr,
::nsstring::nsStringRepr>>>()
, 8usize , concat ! (
@ -28623,7 +28590,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_101() {
fn __bindgen_test_layout_template_99() {
assert_eq!(::std::mem::size_of::<[u64; 18usize]>() , 144usize , concat
! (
"Size of template specialization: " , stringify ! (
@ -28634,7 +28601,7 @@ pub mod root {
[u64; 18usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_102() {
fn __bindgen_test_layout_template_100() {
assert_eq!(::std::mem::size_of::<root::mozilla::BaseTimeDuration<root::mozilla::StickyTimeDurationValueCalculator>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28647,7 +28614,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_103() {
fn __bindgen_test_layout_template_101() {
assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::DisplayItemClip_RoundedRect>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28660,7 +28627,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_104() {
fn __bindgen_test_layout_template_102() {
assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::DOMRect>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28671,7 +28638,7 @@ pub mod root {
root::RefPtr<root::mozilla::dom::DOMRect> ) ));
}
#[test]
fn __bindgen_test_layout_template_105() {
fn __bindgen_test_layout_template_103() {
assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! (
"Size of template specialization: " , stringify ! ( u64 )
));
@ -28680,7 +28647,7 @@ pub mod root {
u64 ) ));
}
#[test]
fn __bindgen_test_layout_template_106() {
fn __bindgen_test_layout_template_104() {
assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::css::DocumentRule>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28691,7 +28658,7 @@ pub mod root {
root::nsTArray<*mut root::mozilla::css::DocumentRule> ) ));
}
#[test]
fn __bindgen_test_layout_template_107() {
fn __bindgen_test_layout_template_105() {
assert_eq!(::std::mem::size_of::<root::nsAutoPtr<root::nsMediaQuery>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (

View file

@ -1073,42 +1073,23 @@ pub mod root {
pub type iterator_difference_type<_Distance> = _Distance;
pub type iterator_pointer<_Pointer> = _Pointer;
pub type iterator_reference<_Reference> = _Reference;
#[repr(C)]
#[derive(Debug)]
pub struct __atomic_base<_ITp> {
pub _M_i: root::std::__atomic_base___int_type<_ITp>,
}
pub type __atomic_base___int_type<_ITp> = _ITp;
pub type atomic_uint =
root::std::__atomic_base<::std::os::raw::c_uint>;
pub type atomic_ulong =
root::std::__atomic_base<::std::os::raw::c_ulong>;
#[repr(C)]
#[derive(Debug)]
pub struct atomic<_Tp> {
pub _M_i: _Tp,
}
#[test]
fn __bindgen_test_layout_template_1() {
assert_eq!(::std::mem::size_of::<root::std::atomic<::std::os::raw::c_uint>>()
, 4usize , concat ! (
"Size of template specialization: " , stringify ! (
root::std::atomic<::std::os::raw::c_uint> ) ));
assert_eq!(::std::mem::align_of::<root::std::atomic<::std::os::raw::c_uint>>()
, 4usize , concat ! (
assert_eq!(::std::mem::size_of::<u32>() , 4usize , concat ! (
"Size of template specialization: " , stringify ! ( u32
) ));
assert_eq!(::std::mem::align_of::<u32>() , 4usize , concat ! (
"Alignment of template specialization: " , stringify !
( root::std::atomic<::std::os::raw::c_uint> ) ));
( u32 ) ));
}
#[test]
fn __bindgen_test_layout_template_2() {
assert_eq!(::std::mem::size_of::<root::std::atomic<::std::os::raw::c_ulong>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::std::atomic<::std::os::raw::c_ulong> ) ));
assert_eq!(::std::mem::align_of::<root::std::atomic<::std::os::raw::c_ulong>>()
, 8usize , concat ! (
assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! (
"Size of template specialization: " , stringify ! ( u64
) ));
assert_eq!(::std::mem::align_of::<u64>() , 8usize , concat ! (
"Alignment of template specialization: " , stringify !
( root::std::atomic<::std::os::raw::c_ulong> ) ));
( u64 ) ));
}
}
pub mod __gnu_cxx {
@ -4468,7 +4449,7 @@ pub mod root {
#[repr(C)]
#[derive(Debug)]
pub struct ThreadSafeAutoRefCnt {
pub mValue: root::std::atomic<::std::os::raw::c_ulong>,
pub mValue: u64,
}
pub const ThreadSafeAutoRefCnt_isThreadSafe: bool = true;
#[test]
@ -6439,6 +6420,9 @@ pub mod root {
Normal = 0,
UnstyledChildrenOnly = 1,
}
#[repr(i32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum TraversalRestyleBehavior { Normal = 0, ForReconstruct = 1, }
pub const UpdateAnimationsTasks_CSSAnimations:
root::mozilla::UpdateAnimationsTasks =
1;
@ -11363,7 +11347,7 @@ pub mod root {
#[repr(C)]
#[derive(Debug)]
pub struct nsStringBuffer {
pub mRefCount: root::std::atomic<::std::os::raw::c_uint>,
pub mRefCount: u32,
pub mStorageSize: u32,
}
#[test]
@ -18104,7 +18088,7 @@ pub mod root {
fn clone(&self) -> Self { *self }
}
pub type nsFrameState_size_t = u64;
pub const nsFrameState_NS_STATE_FLEX_CHILDREN_REORDERED:
pub const nsFrameState_NS_STATE_FLEX_NORMAL_FLOW_CHILDREN_IN_CSS_ORDER:
root::nsFrameState =
nsFrameState::NS_STATE_BOX_CHILD_RESERVED;
pub const nsFrameState_NS_STATE_FLEX_IS_LEGACY_WEBKIT_BOX:
@ -27013,28 +26997,6 @@ pub mod root {
}
#[test]
fn __bindgen_test_layout_template_22() {
assert_eq!(::std::mem::size_of::<root::std::__atomic_base<::std::os::raw::c_uint>>()
, 4usize , concat ! (
"Size of template specialization: " , stringify ! (
root::std::__atomic_base<::std::os::raw::c_uint> ) ));
assert_eq!(::std::mem::align_of::<root::std::__atomic_base<::std::os::raw::c_uint>>()
, 4usize , concat ! (
"Alignment of template specialization: " , stringify ! (
root::std::__atomic_base<::std::os::raw::c_uint> ) ));
}
#[test]
fn __bindgen_test_layout_template_23() {
assert_eq!(::std::mem::size_of::<root::std::__atomic_base<::std::os::raw::c_ulong>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
root::std::__atomic_base<::std::os::raw::c_ulong> ) ));
assert_eq!(::std::mem::align_of::<root::std::__atomic_base<::std::os::raw::c_ulong>>()
, 8usize , concat ! (
"Alignment of template specialization: " , stringify ! (
root::std::__atomic_base<::std::os::raw::c_ulong> ) ));
}
#[test]
fn __bindgen_test_layout_template_24() {
assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<[::std::os::raw::c_char; 0usize],
root::JS::FreePolicy>>()
, 8usize , concat ! (
@ -27051,7 +27013,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_25() {
fn __bindgen_test_layout_template_23() {
assert_eq!(::std::mem::size_of::<root::JS::TenuredHeap<*mut root::JSObject>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27062,7 +27024,7 @@ pub mod root {
root::JS::TenuredHeap<*mut root::JSObject> ) ));
}
#[test]
fn __bindgen_test_layout_template_26() {
fn __bindgen_test_layout_template_24() {
assert_eq!(::std::mem::size_of::<root::JS::Heap<*mut root::JSObject>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27073,7 +27035,7 @@ pub mod root {
root::JS::Heap<*mut root::JSObject> ) ));
}
#[test]
fn __bindgen_test_layout_template_27() {
fn __bindgen_test_layout_template_25() {
assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<[root::nsDependentSubstring; 0usize]>>()
, 1usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27086,7 +27048,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_28() {
fn __bindgen_test_layout_template_26() {
assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<[root::nsDependentCSubstring; 0usize]>>()
, 1usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27099,7 +27061,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_29() {
fn __bindgen_test_layout_template_27() {
assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsCString>>() ,
8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27110,7 +27072,7 @@ pub mod root {
root::nsTArray<root::nsCString> ) ));
}
#[test]
fn __bindgen_test_layout_template_30() {
fn __bindgen_test_layout_template_28() {
assert_eq!(::std::mem::size_of::<root::mozilla::binding_danger::TErrorResult<root::mozilla::binding_danger::JustAssertCleanupPolicy>>()
, 16usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27123,7 +27085,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_31() {
fn __bindgen_test_layout_template_29() {
assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStringBuffer>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27134,7 +27096,7 @@ pub mod root {
root::already_AddRefed<root::nsStringBuffer> ) ));
}
#[test]
fn __bindgen_test_layout_template_32() {
fn __bindgen_test_layout_template_30() {
assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27145,7 +27107,7 @@ pub mod root {
root::already_AddRefed<root::nsIAtom> ) ));
}
#[test]
fn __bindgen_test_layout_template_33() {
fn __bindgen_test_layout_template_31() {
assert_eq!(::std::mem::size_of::<root::JS::Heap<root::JS::Value>>() ,
8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27156,7 +27118,7 @@ pub mod root {
root::JS::Heap<root::JS::Value> ) ));
}
#[test]
fn __bindgen_test_layout_template_34() {
fn __bindgen_test_layout_template_32() {
assert_eq!(::std::mem::size_of::<root::JS::DeletePolicy<root::JSErrorNotes_Note>>()
, 1usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27167,7 +27129,7 @@ pub mod root {
root::JS::DeletePolicy<root::JSErrorNotes_Note> ) ));
}
#[test]
fn __bindgen_test_layout_template_35() {
fn __bindgen_test_layout_template_33() {
assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::JSErrorNotes_Note,
root::JS::DeletePolicy<root::JSErrorNotes_Note>>>()
, 8usize , concat ! (
@ -27184,7 +27146,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_36() {
fn __bindgen_test_layout_template_34() {
assert_eq!(::std::mem::size_of::<root::std::iterator<root::std::input_iterator_tag,
root::mozilla::UniquePtr<root::JSErrorNotes_Note,
root::JS::DeletePolicy<root::JSErrorNotes_Note>>,
@ -27225,7 +27187,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_37() {
fn __bindgen_test_layout_template_35() {
assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIRunnable>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27236,7 +27198,7 @@ pub mod root {
root::already_AddRefed<root::nsIRunnable> ) ));
}
#[test]
fn __bindgen_test_layout_template_38() {
fn __bindgen_test_layout_template_36() {
assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIPrincipal>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27247,7 +27209,7 @@ pub mod root {
root::nsCOMPtr<root::nsIPrincipal> ) ));
}
#[test]
fn __bindgen_test_layout_template_39() {
fn __bindgen_test_layout_template_37() {
assert_eq!(::std::mem::size_of::<[u64; 28usize]>() , 224usize , concat
! (
"Size of template specialization: " , stringify ! (
@ -27258,7 +27220,7 @@ pub mod root {
[u64; 28usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_40() {
fn __bindgen_test_layout_template_38() {
assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27269,7 +27231,7 @@ pub mod root {
root::already_AddRefed<root::nsIURI> ) ));
}
#[test]
fn __bindgen_test_layout_template_41() {
fn __bindgen_test_layout_template_39() {
assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::dom::AnonymousContent>>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27282,7 +27244,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_42() {
fn __bindgen_test_layout_template_40() {
assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27293,7 +27255,7 @@ pub mod root {
root::RefPtr<root::mozilla::StyleSheet> ) ));
}
#[test]
fn __bindgen_test_layout_template_43() {
fn __bindgen_test_layout_template_41() {
assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::Element>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27304,7 +27266,7 @@ pub mod root {
root::RefPtr<root::mozilla::dom::Element> ) ));
}
#[test]
fn __bindgen_test_layout_template_44() {
fn __bindgen_test_layout_template_42() {
assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::dom::Element>>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27317,7 +27279,7 @@ pub mod root {
));
}
#[test]
fn __bindgen_test_layout_template_45() {
fn __bindgen_test_layout_template_43() {
assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIObserver>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27328,7 +27290,7 @@ pub mod root {
root::nsCOMPtr<root::nsIObserver> ) ));
}
#[test]
fn __bindgen_test_layout_template_46() {
fn __bindgen_test_layout_template_44() {
assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsCOMPtr<root::nsIObserver>>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27339,7 +27301,7 @@ pub mod root {
root::nsTArray<root::nsCOMPtr<root::nsIObserver>> ) ));
}
#[test]
fn __bindgen_test_layout_template_47() {
fn __bindgen_test_layout_template_45() {
assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIDocument>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27350,7 +27312,7 @@ pub mod root {
root::already_AddRefed<root::nsIDocument> ) ));
}
#[test]
fn __bindgen_test_layout_template_48() {
fn __bindgen_test_layout_template_46() {
assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsContentList>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27361,7 +27323,7 @@ pub mod root {
root::already_AddRefed<root::nsContentList> ) ));
}
#[test]
fn __bindgen_test_layout_template_49() {
fn __bindgen_test_layout_template_47() {
assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsINode>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27372,7 +27334,7 @@ pub mod root {
root::already_AddRefed<root::nsINode> ) ));
}
#[test]
fn __bindgen_test_layout_template_50() {
fn __bindgen_test_layout_template_48() {
assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIWeakReference>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27383,7 +27345,7 @@ pub mod root {
root::nsCOMPtr<root::nsIWeakReference> ) ));
}
#[test]
fn __bindgen_test_layout_template_51() {
fn __bindgen_test_layout_template_49() {
assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! (
"Size of template specialization: " , stringify ! ( u64 )
));
@ -27392,7 +27354,7 @@ pub mod root {
u64 ) ));
}
#[test]
fn __bindgen_test_layout_template_52() {
fn __bindgen_test_layout_template_50() {
assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsRect>>() ,
8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27403,7 +27365,7 @@ pub mod root {
root::nsTArray<root::nsRect> ) ));
}
#[test]
fn __bindgen_test_layout_template_53() {
fn __bindgen_test_layout_template_51() {
assert_eq!(::std::mem::size_of::<[u64; 28usize]>() , 224usize , concat
! (
"Size of template specialization: " , stringify ! (
@ -27414,7 +27376,7 @@ pub mod root {
[u64; 28usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_54() {
fn __bindgen_test_layout_template_52() {
assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::nsIContent>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27425,7 +27387,7 @@ pub mod root {
root::nsTArray<*mut root::nsIContent> ) ));
}
#[test]
fn __bindgen_test_layout_template_55() {
fn __bindgen_test_layout_template_53() {
assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::CSSValue>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27436,7 +27398,7 @@ pub mod root {
root::already_AddRefed<root::mozilla::dom::CSSValue> ) ));
}
#[test]
fn __bindgen_test_layout_template_56() {
fn __bindgen_test_layout_template_54() {
assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::mozilla::dom::TimeoutManager>>()
, 1usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27449,7 +27411,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_57() {
fn __bindgen_test_layout_template_55() {
assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsISupports>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27460,7 +27422,7 @@ pub mod root {
root::already_AddRefed<root::nsISupports> ) ));
}
#[test]
fn __bindgen_test_layout_template_58() {
fn __bindgen_test_layout_template_56() {
assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIRunnable>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27471,7 +27433,7 @@ pub mod root {
root::nsCOMPtr<root::nsIRunnable> ) ));
}
#[test]
fn __bindgen_test_layout_template_59() {
fn __bindgen_test_layout_template_57() {
assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIContent>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27482,7 +27444,7 @@ pub mod root {
root::already_AddRefed<root::nsIContent> ) ));
}
#[test]
fn __bindgen_test_layout_template_60() {
fn __bindgen_test_layout_template_58() {
assert_eq!(::std::mem::size_of::<[u64; 5usize]>() , 40usize , concat !
(
"Size of template specialization: " , stringify ! (
@ -27493,7 +27455,7 @@ pub mod root {
[u64; 5usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_61() {
fn __bindgen_test_layout_template_59() {
assert_eq!(::std::mem::size_of::<root::mozilla::OwningNonNull<root::nsINode>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27504,6 +27466,28 @@ pub mod root {
root::mozilla::OwningNonNull<root::nsINode> ) ));
}
#[test]
fn __bindgen_test_layout_template_60() {
assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat !
(
"Size of template specialization: " , stringify ! (
[u32; 2usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 2usize]>() , 4usize , concat !
(
"Alignment of template specialization: " , stringify ! (
[u32; 2usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_61() {
assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat !
(
"Size of template specialization: " , stringify ! (
[u32; 2usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 2usize]>() , 4usize , concat !
(
"Alignment of template specialization: " , stringify ! (
[u32; 2usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_62() {
assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat !
(
@ -27516,14 +27500,14 @@ pub mod root {
}
#[test]
fn __bindgen_test_layout_template_63() {
assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat !
assert_eq!(::std::mem::size_of::<[u32; 4usize]>() , 16usize , concat !
(
"Size of template specialization: " , stringify ! (
[u32; 2usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 2usize]>() , 4usize , concat !
[u32; 4usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 4usize]>() , 4usize , concat !
(
"Alignment of template specialization: " , stringify ! (
[u32; 2usize] ) ));
[u32; 4usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_64() {
@ -27538,6 +27522,17 @@ pub mod root {
}
#[test]
fn __bindgen_test_layout_template_65() {
assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat !
(
"Size of template specialization: " , stringify ! (
[u32; 2usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 2usize]>() , 4usize , concat !
(
"Alignment of template specialization: " , stringify ! (
[u32; 2usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_66() {
assert_eq!(::std::mem::size_of::<[u32; 4usize]>() , 16usize , concat !
(
"Size of template specialization: " , stringify ! (
@ -27548,26 +27543,15 @@ pub mod root {
[u32; 4usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_66() {
assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat !
(
"Size of template specialization: " , stringify ! (
[u32; 2usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 2usize]>() , 4usize , concat !
(
"Alignment of template specialization: " , stringify ! (
[u32; 2usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_67() {
assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat !
assert_eq!(::std::mem::size_of::<[u32; 4usize]>() , 16usize , concat !
(
"Size of template specialization: " , stringify ! (
[u32; 2usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 2usize]>() , 4usize , concat !
[u32; 4usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 4usize]>() , 4usize , concat !
(
"Alignment of template specialization: " , stringify ! (
[u32; 2usize] ) ));
[u32; 4usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_68() {
@ -27582,28 +27566,6 @@ pub mod root {
}
#[test]
fn __bindgen_test_layout_template_69() {
assert_eq!(::std::mem::size_of::<[u32; 4usize]>() , 16usize , concat !
(
"Size of template specialization: " , stringify ! (
[u32; 4usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 4usize]>() , 4usize , concat !
(
"Alignment of template specialization: " , stringify ! (
[u32; 4usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_70() {
assert_eq!(::std::mem::size_of::<[u32; 4usize]>() , 16usize , concat !
(
"Size of template specialization: " , stringify ! (
[u32; 4usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 4usize]>() , 4usize , concat !
(
"Alignment of template specialization: " , stringify ! (
[u32; 4usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_71() {
assert_eq!(::std::mem::size_of::<u32>() , 4usize , concat ! (
"Size of template specialization: " , stringify ! ( u32 )
));
@ -27612,6 +27574,28 @@ pub mod root {
u32 ) ));
}
#[test]
fn __bindgen_test_layout_template_70() {
assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat !
(
"Size of template specialization: " , stringify ! (
[u32; 2usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 2usize]>() , 4usize , concat !
(
"Alignment of template specialization: " , stringify ! (
[u32; 2usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_71() {
assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat !
(
"Size of template specialization: " , stringify ! (
[u32; 2usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 2usize]>() , 4usize , concat !
(
"Alignment of template specialization: " , stringify ! (
[u32; 2usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_72() {
assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat !
(
@ -27624,28 +27608,6 @@ pub mod root {
}
#[test]
fn __bindgen_test_layout_template_73() {
assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat !
(
"Size of template specialization: " , stringify ! (
[u32; 2usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 2usize]>() , 4usize , concat !
(
"Alignment of template specialization: " , stringify ! (
[u32; 2usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_74() {
assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat !
(
"Size of template specialization: " , stringify ! (
[u32; 2usize] ) ));
assert_eq!(::std::mem::align_of::<[u32; 2usize]>() , 4usize , concat !
(
"Alignment of template specialization: " , stringify ! (
[u32; 2usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_75() {
assert_eq!(::std::mem::size_of::<root::nsTArray<f64>>() , 8usize ,
concat ! (
"Size of template specialization: " , stringify ! (
@ -27656,7 +27618,7 @@ pub mod root {
root::nsTArray<f64> ) ));
}
#[test]
fn __bindgen_test_layout_template_76() {
fn __bindgen_test_layout_template_74() {
assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::DOMIntersectionObserverEntry>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27669,7 +27631,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_77() {
fn __bindgen_test_layout_template_75() {
assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::dom::DOMIntersectionObserverEntry>>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27682,7 +27644,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_78() {
fn __bindgen_test_layout_template_76() {
assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::ProfilerBacktrace,
root::ProfilerBacktraceDestructor>>()
, 8usize , concat ! (
@ -27699,7 +27661,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_79() {
fn __bindgen_test_layout_template_77() {
assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::FontFamilyName>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27710,7 +27672,7 @@ pub mod root {
root::nsTArray<root::mozilla::FontFamilyName> ) ));
}
#[test]
fn __bindgen_test_layout_template_80() {
fn __bindgen_test_layout_template_78() {
assert_eq!(::std::mem::size_of::<root::nsTArray<::std::os::raw::c_uint>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27721,7 +27683,7 @@ pub mod root {
root::nsTArray<::std::os::raw::c_uint> ) ));
}
#[test]
fn __bindgen_test_layout_template_81() {
fn __bindgen_test_layout_template_79() {
assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::FramePropertyTable_PropertyValue>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27734,7 +27696,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_82() {
fn __bindgen_test_layout_template_80() {
assert_eq!(::std::mem::size_of::<root::nsPtrHashKey<root::nsIFrame>>()
, 16usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27745,7 +27707,7 @@ pub mod root {
root::nsPtrHashKey<root::nsIFrame> ) ));
}
#[test]
fn __bindgen_test_layout_template_83() {
fn __bindgen_test_layout_template_81() {
assert_eq!(::std::mem::size_of::<[u64; 5usize]>() , 40usize , concat !
(
"Size of template specialization: " , stringify ! (
@ -27756,7 +27718,7 @@ pub mod root {
[u64; 5usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_84() {
fn __bindgen_test_layout_template_82() {
assert_eq!(::std::mem::size_of::<root::mozilla::OwningNonNull<root::mozilla::EffectCompositor_AnimationStyleRuleProcessor>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27769,7 +27731,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_85() {
fn __bindgen_test_layout_template_83() {
assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::ProxyBehaviour>>()
, 1usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27780,7 +27742,7 @@ pub mod root {
root::mozilla::DefaultDelete<root::ProxyBehaviour> ) ));
}
#[test]
fn __bindgen_test_layout_template_86() {
fn __bindgen_test_layout_template_84() {
assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::URLExtraData>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27791,7 +27753,7 @@ pub mod root {
root::already_AddRefed<root::mozilla::URLExtraData> ) ));
}
#[test]
fn __bindgen_test_layout_template_87() {
fn __bindgen_test_layout_template_85() {
assert_eq!(::std::mem::size_of::<root::nsMainThreadPtrHolder<root::nsIURI>>()
, 24usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27802,7 +27764,7 @@ pub mod root {
root::nsMainThreadPtrHolder<root::nsIURI> ) ));
}
#[test]
fn __bindgen_test_layout_template_88() {
fn __bindgen_test_layout_template_86() {
assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::nsCSSValueList>>()
, 1usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27813,7 +27775,7 @@ pub mod root {
root::mozilla::DefaultDelete<root::nsCSSValueList> ) ));
}
#[test]
fn __bindgen_test_layout_template_89() {
fn __bindgen_test_layout_template_87() {
assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValueList,
root::mozilla::DefaultDelete<root::nsCSSValueList>>>()
, 8usize , concat ! (
@ -27830,7 +27792,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_90() {
fn __bindgen_test_layout_template_88() {
assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::nsCSSValuePairList>>()
, 1usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27843,7 +27805,7 @@ pub mod root {
));
}
#[test]
fn __bindgen_test_layout_template_91() {
fn __bindgen_test_layout_template_89() {
assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValuePairList,
root::mozilla::DefaultDelete<root::nsCSSValuePairList>>>()
, 8usize , concat ! (
@ -27860,7 +27822,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_92() {
fn __bindgen_test_layout_template_90() {
assert_eq!(::std::mem::size_of::<[u64; 2usize]>() , 16usize , concat !
(
"Size of template specialization: " , stringify ! (
@ -27871,7 +27833,7 @@ pub mod root {
[u64; 2usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_93() {
fn __bindgen_test_layout_template_91() {
assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! (
"Size of template specialization: " , stringify ! ( u64 )
));
@ -27880,7 +27842,7 @@ pub mod root {
u64 ) ));
}
#[test]
fn __bindgen_test_layout_template_94() {
fn __bindgen_test_layout_template_92() {
assert_eq!(::std::mem::size_of::<[u32; 3usize]>() , 12usize , concat !
(
"Size of template specialization: " , stringify ! (
@ -27891,7 +27853,7 @@ pub mod root {
[u32; 3usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_95() {
fn __bindgen_test_layout_template_93() {
assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleImageRequest>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27902,7 +27864,7 @@ pub mod root {
root::already_AddRefed<root::nsStyleImageRequest> ) ));
}
#[test]
fn __bindgen_test_layout_template_96() {
fn __bindgen_test_layout_template_94() {
assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::nsStyleSides>>()
, 1usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27913,7 +27875,7 @@ pub mod root {
root::mozilla::DefaultDelete<root::nsStyleSides> ) ));
}
#[test]
fn __bindgen_test_layout_template_97() {
fn __bindgen_test_layout_template_95() {
assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsStyleSides,
root::mozilla::DefaultDelete<root::nsStyleSides>>>()
, 8usize , concat ! (
@ -27930,7 +27892,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_98() {
fn __bindgen_test_layout_template_96() {
assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::CachedBorderImageData>>()
, 1usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27943,7 +27905,7 @@ pub mod root {
));
}
#[test]
fn __bindgen_test_layout_template_99() {
fn __bindgen_test_layout_template_97() {
assert_eq!(::std::mem::size_of::<root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr>>()
, 32usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27954,7 +27916,7 @@ pub mod root {
root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr> ) ));
}
#[test]
fn __bindgen_test_layout_template_100() {
fn __bindgen_test_layout_template_98() {
assert_eq!(::std::mem::size_of::<root::nsTArray<root::std::pair<::nsstring::nsStringRepr,
::nsstring::nsStringRepr>>>()
, 8usize , concat ! (
@ -27969,7 +27931,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_101() {
fn __bindgen_test_layout_template_99() {
assert_eq!(::std::mem::size_of::<[u64; 18usize]>() , 144usize , concat
! (
"Size of template specialization: " , stringify ! (
@ -27980,7 +27942,7 @@ pub mod root {
[u64; 18usize] ) ));
}
#[test]
fn __bindgen_test_layout_template_102() {
fn __bindgen_test_layout_template_100() {
assert_eq!(::std::mem::size_of::<root::mozilla::BaseTimeDuration<root::mozilla::StickyTimeDurationValueCalculator>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -27993,7 +27955,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_103() {
fn __bindgen_test_layout_template_101() {
assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::DisplayItemClip_RoundedRect>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28006,7 +27968,7 @@ pub mod root {
) ));
}
#[test]
fn __bindgen_test_layout_template_104() {
fn __bindgen_test_layout_template_102() {
assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::DOMRect>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28017,7 +27979,7 @@ pub mod root {
root::RefPtr<root::mozilla::dom::DOMRect> ) ));
}
#[test]
fn __bindgen_test_layout_template_105() {
fn __bindgen_test_layout_template_103() {
assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! (
"Size of template specialization: " , stringify ! ( u64 )
));
@ -28026,7 +27988,7 @@ pub mod root {
u64 ) ));
}
#[test]
fn __bindgen_test_layout_template_106() {
fn __bindgen_test_layout_template_104() {
assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::css::DocumentRule>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (
@ -28037,7 +27999,7 @@ pub mod root {
root::nsTArray<*mut root::mozilla::css::DocumentRule> ) ));
}
#[test]
fn __bindgen_test_layout_template_107() {
fn __bindgen_test_layout_template_105() {
assert_eq!(::std::mem::size_of::<root::nsAutoPtr<root::nsMediaQuery>>()
, 8usize , concat ! (
"Size of template specialization: " , stringify ! (

View file

@ -557,7 +557,7 @@ trait PrivateMatchMethods: TElement {
// Accumulate restyle damage.
if let Some(old) = old_values {
self.accumulate_damage(restyle.unwrap(), &old, &new_values, pseudo);
self.accumulate_damage(&context.shared, restyle.unwrap(), &old, &new_values, pseudo);
}
// Set the new computed values.
@ -677,10 +677,16 @@ trait PrivateMatchMethods: TElement {
/// Computes and applies non-redundant damage.
#[cfg(feature = "gecko")]
fn accumulate_damage(&self,
shared_context: &SharedStyleContext,
restyle: &mut RestyleData,
old_values: &Arc<ComputedValues>,
new_values: &Arc<ComputedValues>,
pseudo: Option<&PseudoElement>) {
// Don't accumulate damage if we're in a restyle for reconstruction.
if shared_context.traversal_flags.for_reconstruct() {
return;
}
// If an ancestor is already getting reconstructed by Gecko's top-down
// frame constructor, no need to apply damage.
if restyle.damage_handled.contains(RestyleDamage::reconstruct()) {
@ -705,6 +711,7 @@ trait PrivateMatchMethods: TElement {
/// Computes and applies restyle damage unless we've already maxed it out.
#[cfg(feature = "servo")]
fn accumulate_damage(&self,
_shared_context: &SharedStyleContext,
restyle: &mut RestyleData,
old_values: &Arc<ComputedValues>,
new_values: &Arc<ComputedValues>,
@ -1038,7 +1045,7 @@ pub trait MatchMethods : TElement {
// in the name of animation-only traversal. Rest of restyle hints
// will be processed in a subsequent normal traversal.
if hint.contains(RESTYLE_CSS_ANIMATIONS) {
debug_assert!(context.shared.animation_only_restyle);
debug_assert!(context.shared.traversal_flags.for_animation_only());
let animation_rule = self.get_animation_rule(None);
replace_rule_node(CascadeLevel::Animations,
@ -1109,7 +1116,7 @@ pub trait MatchMethods : TElement {
let old_values = data.get_styles_mut()
.and_then(|s| s.primary.values.take());
if let Some(old) = old_values {
self.accumulate_damage(data.restyle_mut(), &old,
self.accumulate_damage(shared_context, data.restyle_mut(), &old,
shared_style.values(), None);
}

View file

@ -31,12 +31,14 @@ pub struct PerLevelTraversalData {
}
bitflags! {
/// Represents that target elements of the traversal.
/// Flags that control the traversal process.
pub flags TraversalFlags: u8 {
/// Traverse only unstyled children.
const UNSTYLED_CHILDREN_ONLY = 0x01,
/// Traverse only elements for animation restyles
/// Traverse only elements for animation restyles.
const ANIMATION_ONLY = 0x02,
/// Traverse without generating any change hints.
const FOR_RECONSTRUCT = 0x04,
}
}
@ -50,6 +52,11 @@ impl TraversalFlags {
pub fn for_unstyled_children_only(&self) -> bool {
self.contains(UNSTYLED_CHILDREN_ONLY)
}
/// Returns true if the traversal is for a frame reconstruction.
pub fn for_reconstruct(&self) -> bool {
self.contains(FOR_RECONSTRUCT)
}
}
/// This structure exists to enforce that callers invoke pre_traverse, and also
@ -148,7 +155,17 @@ pub trait DomTraversal<E: TElement> : Sync {
fn pre_traverse(root: E, stylist: &Stylist, traversal_flags: TraversalFlags)
-> PreTraverseToken
{
debug_assert!(!(traversal_flags.for_reconstruct() &&
traversal_flags.for_unstyled_children_only()),
"must not specify FOR_RECONSTRUCT in combination with UNSTYLED_CHILDREN_ONLY");
if traversal_flags.for_unstyled_children_only() {
if root.borrow_data().map_or(true, |d| d.has_styles() && d.styles().is_display_none()) {
return PreTraverseToken {
traverse: false,
unstyled_children_only: false,
};
}
return PreTraverseToken {
traverse: true,
unstyled_children_only: true,
@ -159,17 +176,23 @@ pub trait DomTraversal<E: TElement> : Sync {
// we need a special case for the root.
//
// Expanding snapshots here may create a LATER_SIBLINGS restyle hint, which
// we will drop on the floor. To prevent missed restyles, we assert against
// restyling a root with later siblings.
// we propagate to the next sibling element.
if let Some(mut data) = root.mutate_data() {
if let Some(r) = data.get_restyle_mut() {
debug_assert!(root.next_sibling_element().is_none());
let _later_siblings = r.compute_final_hint(root, stylist);
let later_siblings = r.compute_final_hint(root, stylist);
if later_siblings {
if let Some(next) = root.next_sibling_element() {
if let Some(mut next_data) = next.mutate_data() {
let hint = StoredRestyleHint::subtree_and_later_siblings();
next_data.ensure_restyle().hint.insert(&hint);
}
}
}
}
}
PreTraverseToken {
traverse: Self::node_needs_traversal(root.as_node(), traversal_flags.for_animation_only()),
traverse: Self::node_needs_traversal(root.as_node(), traversal_flags),
unstyled_children_only: false,
}
}
@ -183,12 +206,16 @@ pub trait DomTraversal<E: TElement> : Sync {
}
/// Returns true if traversal is needed for the given node and subtree.
fn node_needs_traversal(node: E::ConcreteNode, animation_only: bool) -> bool {
fn node_needs_traversal(node: E::ConcreteNode, traversal_flags: TraversalFlags) -> bool {
// Non-incremental layout visits every node.
if is_servo_nonincremental_layout() {
return true;
}
if traversal_flags.for_reconstruct() {
return true;
}
match node.as_element() {
None => Self::text_node_needs_traversal(node),
Some(el) => {
@ -210,7 +237,7 @@ pub trait DomTraversal<E: TElement> : Sync {
// In case of animation-only traversal we need to traverse
// the element if the element has animation only dirty
// descendants bit, animation-only restyle hint or recascade.
if animation_only {
if traversal_flags.for_animation_only() {
if el.has_animation_only_dirty_descendants() {
return true;
}
@ -258,7 +285,11 @@ pub trait DomTraversal<E: TElement> : Sync {
// Servo uses the post-order traversal for flow construction, so
// we need to traverse any element with damage so that we can perform
// fixup / reconstruction on our way back up the tree.
if cfg!(feature = "servo") &&
//
// We also need to traverse nodes with explicit damage and no other
// restyle data, so that this damage can be cleared.
if (cfg!(feature = "servo") ||
traversal_flags.for_reconstruct()) &&
data.get_restyle().map_or(false, |r| r.damage != RestyleDamage::empty())
{
return true;
@ -335,12 +366,16 @@ pub trait DomTraversal<E: TElement> : Sync {
}
for kid in parent.as_node().children() {
if Self::node_needs_traversal(kid, self.shared_context().animation_only_restyle) {
let el = kid.as_element();
if el.as_ref().and_then(|el| el.borrow_data())
.map_or(false, |d| d.has_styles())
{
unsafe { parent.set_dirty_descendants(); }
if Self::node_needs_traversal(kid, self.shared_context().traversal_flags) {
// If we are in a restyle for reconstruction, there is no need to
// perform a post-traversal, so we don't need to set the dirty
// descendants bit on the parent.
if !self.shared_context().traversal_flags.for_reconstruct() {
let el = kid.as_element();
if el.as_ref().and_then(|el| el.borrow_data())
.map_or(false, |d| d.has_styles()) {
unsafe { parent.set_dirty_descendants(); }
}
}
f(thread_local, kid);
}
@ -511,7 +546,7 @@ pub fn recalc_style_at<E, D>(traversal: &D,
let propagated_hint = match data.get_restyle_mut() {
None => StoredRestyleHint::empty(),
Some(r) => {
debug_assert!(context.shared.animation_only_restyle ||
debug_assert!(context.shared.traversal_flags.for_animation_only() ||
!r.hint.has_animation_hint(),
"animation restyle hint should be handled during \
animation-only restyles");
@ -519,13 +554,14 @@ pub fn recalc_style_at<E, D>(traversal: &D,
r.hint.propagate()
},
};
debug_assert!(data.has_current_styles() || context.shared.animation_only_restyle,
debug_assert!(data.has_current_styles() ||
context.shared.traversal_flags.for_animation_only(),
"Should have computed style or haven't yet valid computed style in case of animation-only restyle");
trace!("propagated_hint={:?}, inherited_style_changed={:?}",
propagated_hint, inherited_style_changed);
let has_dirty_descendants_for_this_restyle =
if context.shared.animation_only_restyle {
if context.shared.traversal_flags.for_animation_only() {
element.has_animation_only_dirty_descendants()
} else {
element.has_dirty_descendants()
@ -550,20 +586,34 @@ pub fn recalc_style_at<E, D>(traversal: &D,
inherited_style_changed);
}
if context.shared.animation_only_restyle {
// If we are in a restyle for reconstruction, drop the existing restyle
// data here, since we won't need to perform a post-traversal to pick up
// any change hints.
if context.shared.traversal_flags.for_reconstruct() {
data.clear_restyle();
}
if context.shared.traversal_flags.for_animation_only() {
unsafe { element.unset_animation_only_dirty_descendants(); }
}
// Make sure the dirty descendants bit is not set for the root of a
// display:none subtree, even if the style didn't change (since, if
// the style did change, we'd have already cleared it above).
// There are two cases when we want to clear the dity descendants bit
// here after styling this element.
//
// The first case is when this element is the root of a display:none
// subtree, even if the style didn't change (since, if the style did
// change, we'd have already cleared it above).
//
// This keeps the tree in a valid state without requiring the DOM to
// check display:none on the parent when inserting new children (which
// can be moderately expensive). Instead, DOM implementations can
// unconditionally set the dirty descendants bit on any styled parent,
// and let the traversal sort it out.
if data.styles().is_display_none() {
//
// The second case is when we are in a restyle for reconstruction,
// where we won't need to perform a post-traversal to pick up any
// change hints.
if data.styles().is_display_none() || context.shared.traversal_flags.for_reconstruct() {
unsafe { element.unset_dirty_descendants(); }
}
}