Auto merge of #16163 - bholley:revert_threadsafe_array, r=bholley

stylo: Remove ThreadSafeArray

See https://bugzilla.mozilla.org/show_bug.cgi?id=1350244

This reverts https://bugzilla.mozilla.org/show_bug.cgi?id=1348606

<!-- 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/16163)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2017-03-29 12:16:35 -05:00 committed by GitHub
commit a54e4f33ee
3 changed files with 135 additions and 238 deletions

View file

@ -8389,6 +8389,7 @@ pub mod root {
} }
pub type pair_first_type<_T1> = _T1; pub type pair_first_type<_T1> = _T1;
pub type pair_second_type<_T2> = _T2; pub type pair_second_type<_T2> = _T2;
pub type pair__PCCP = [u8; 0usize];
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct input_iterator_tag { pub struct input_iterator_tag {
@ -15628,66 +15629,66 @@ pub mod root {
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]
pub struct nsDOMMutationObserver([u8; 0]); pub struct nsDOMMutationObserver([u8; 0]);
pub const NODE_HAS_LISTENERMANAGER: root::_bindgen_ty_118 = pub const NODE_HAS_LISTENERMANAGER: root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_HAS_LISTENERMANAGER; _bindgen_ty_104::NODE_HAS_LISTENERMANAGER;
pub const NODE_HAS_PROPERTIES: root::_bindgen_ty_118 = pub const NODE_HAS_PROPERTIES: root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_HAS_PROPERTIES; _bindgen_ty_104::NODE_HAS_PROPERTIES;
pub const NODE_IS_ANONYMOUS_ROOT: root::_bindgen_ty_118 = pub const NODE_IS_ANONYMOUS_ROOT: root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_IS_ANONYMOUS_ROOT; _bindgen_ty_104::NODE_IS_ANONYMOUS_ROOT;
pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: root::_bindgen_ty_118 = pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE; _bindgen_ty_104::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE;
pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: root::_bindgen_ty_118 = pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_IS_NATIVE_ANONYMOUS_ROOT; _bindgen_ty_104::NODE_IS_NATIVE_ANONYMOUS_ROOT;
pub const NODE_FORCE_XBL_BINDINGS: root::_bindgen_ty_118 = pub const NODE_FORCE_XBL_BINDINGS: root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_FORCE_XBL_BINDINGS; _bindgen_ty_104::NODE_FORCE_XBL_BINDINGS;
pub const NODE_MAY_BE_IN_BINDING_MNGR: root::_bindgen_ty_118 = pub const NODE_MAY_BE_IN_BINDING_MNGR: root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_MAY_BE_IN_BINDING_MNGR; _bindgen_ty_104::NODE_MAY_BE_IN_BINDING_MNGR;
pub const NODE_IS_EDITABLE: root::_bindgen_ty_118 = pub const NODE_IS_EDITABLE: root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_IS_EDITABLE; _bindgen_ty_104::NODE_IS_EDITABLE;
pub const NODE_IS_NATIVE_ANONYMOUS: root::_bindgen_ty_118 = pub const NODE_IS_NATIVE_ANONYMOUS: root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_IS_NATIVE_ANONYMOUS; _bindgen_ty_104::NODE_IS_NATIVE_ANONYMOUS;
pub const NODE_IS_IN_SHADOW_TREE: root::_bindgen_ty_118 = pub const NODE_IS_IN_SHADOW_TREE: root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_IS_IN_SHADOW_TREE; _bindgen_ty_104::NODE_IS_IN_SHADOW_TREE;
pub const NODE_HAS_EMPTY_SELECTOR: root::_bindgen_ty_118 = pub const NODE_HAS_EMPTY_SELECTOR: root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_HAS_EMPTY_SELECTOR; _bindgen_ty_104::NODE_HAS_EMPTY_SELECTOR;
pub const NODE_HAS_SLOW_SELECTOR: root::_bindgen_ty_118 = pub const NODE_HAS_SLOW_SELECTOR: root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_HAS_SLOW_SELECTOR; _bindgen_ty_104::NODE_HAS_SLOW_SELECTOR;
pub const NODE_HAS_EDGE_CHILD_SELECTOR: root::_bindgen_ty_118 = pub const NODE_HAS_EDGE_CHILD_SELECTOR: root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_HAS_EDGE_CHILD_SELECTOR; _bindgen_ty_104::NODE_HAS_EDGE_CHILD_SELECTOR;
pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: root::_bindgen_ty_118 = pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS; _bindgen_ty_104::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS;
pub const NODE_ALL_SELECTOR_FLAGS: root::_bindgen_ty_118 = pub const NODE_ALL_SELECTOR_FLAGS: root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_ALL_SELECTOR_FLAGS; _bindgen_ty_104::NODE_ALL_SELECTOR_FLAGS;
pub const NODE_NEEDS_FRAME: root::_bindgen_ty_118 = pub const NODE_NEEDS_FRAME: root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_NEEDS_FRAME; _bindgen_ty_104::NODE_NEEDS_FRAME;
pub const NODE_DESCENDANTS_NEED_FRAMES: root::_bindgen_ty_118 = pub const NODE_DESCENDANTS_NEED_FRAMES: root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_DESCENDANTS_NEED_FRAMES; _bindgen_ty_104::NODE_DESCENDANTS_NEED_FRAMES;
pub const NODE_HAS_ACCESSKEY: root::_bindgen_ty_118 = pub const NODE_HAS_ACCESSKEY: root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_HAS_ACCESSKEY; _bindgen_ty_104::NODE_HAS_ACCESSKEY;
pub const NODE_HAS_DIRECTION_RTL: root::_bindgen_ty_118 = pub const NODE_HAS_DIRECTION_RTL: root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_HAS_DIRECTION_RTL; _bindgen_ty_104::NODE_HAS_DIRECTION_RTL;
pub const NODE_HAS_DIRECTION_LTR: root::_bindgen_ty_118 = pub const NODE_HAS_DIRECTION_LTR: root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_HAS_DIRECTION_LTR; _bindgen_ty_104::NODE_HAS_DIRECTION_LTR;
pub const NODE_ALL_DIRECTION_FLAGS: root::_bindgen_ty_118 = pub const NODE_ALL_DIRECTION_FLAGS: root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_ALL_DIRECTION_FLAGS; _bindgen_ty_104::NODE_ALL_DIRECTION_FLAGS;
pub const NODE_CHROME_ONLY_ACCESS: root::_bindgen_ty_118 = pub const NODE_CHROME_ONLY_ACCESS: root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_CHROME_ONLY_ACCESS; _bindgen_ty_104::NODE_CHROME_ONLY_ACCESS;
pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: root::_bindgen_ty_118 = pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS; _bindgen_ty_104::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS;
pub const NODE_SHARED_RESTYLE_BIT_1: root::_bindgen_ty_118 = pub const NODE_SHARED_RESTYLE_BIT_1: root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_SHARED_RESTYLE_BIT_1; _bindgen_ty_104::NODE_SHARED_RESTYLE_BIT_1;
pub const NODE_SHARED_RESTYLE_BIT_2: root::_bindgen_ty_118 = pub const NODE_SHARED_RESTYLE_BIT_2: root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_SHARED_RESTYLE_BIT_2; _bindgen_ty_104::NODE_SHARED_RESTYLE_BIT_2;
pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: root::_bindgen_ty_118 = pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_SHARED_RESTYLE_BIT_1; _bindgen_ty_104::NODE_SHARED_RESTYLE_BIT_1;
pub const NODE_HAS_ANIMATION_ONLY_DIRTY_DESCENDANTS_FOR_SERVO: pub const NODE_HAS_ANIMATION_ONLY_DIRTY_DESCENDANTS_FOR_SERVO:
root::_bindgen_ty_118 = root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_SHARED_RESTYLE_BIT_2; _bindgen_ty_104::NODE_SHARED_RESTYLE_BIT_2;
pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: root::_bindgen_ty_118 = pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: root::_bindgen_ty_104 =
_bindgen_ty_118::NODE_TYPE_SPECIFIC_BITS_OFFSET; _bindgen_ty_104::NODE_TYPE_SPECIFIC_BITS_OFFSET;
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum _bindgen_ty_118 { pub enum _bindgen_ty_104 {
NODE_HAS_LISTENERMANAGER = 4, NODE_HAS_LISTENERMANAGER = 4,
NODE_HAS_PROPERTIES = 8, NODE_HAS_PROPERTIES = 8,
NODE_IS_ANONYMOUS_ROOT = 16, NODE_IS_ANONYMOUS_ROOT = 16,
@ -19527,9 +19528,9 @@ pub mod root {
eCSSUnit_Local_Font = 15, eCSSUnit_Local_Font = 15,
eCSSUnit_Font_Format = 16, eCSSUnit_Font_Format = 16,
eCSSUnit_Element = 17, eCSSUnit_Element = 17,
eCSSUnit_Counter = 20, eCSSUnit_Array = 20,
eCSSUnit_Counters = 21, eCSSUnit_Counter = 21,
eCSSUnit_Array = 22, eCSSUnit_Counters = 22,
eCSSUnit_Cubic_Bezier = 23, eCSSUnit_Cubic_Bezier = 23,
eCSSUnit_Steps = 24, eCSSUnit_Steps = 24,
eCSSUnit_Symbols = 25, eCSSUnit_Symbols = 25,
@ -20162,15 +20163,14 @@ pub mod root {
#[repr(C)] #[repr(C)]
#[derive(Debug)] #[derive(Debug)]
pub struct nsCSSValue_Array { pub struct nsCSSValue_Array {
pub mRefCnt: root::nsAutoRefCnt, pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
pub _mOwningThread: root::nsAutoOwningThread,
pub mCount: usize, pub mCount: usize,
pub mArray: [root::nsCSSValue; 1usize], pub mArray: [root::nsCSSValue; 1usize],
} }
pub type nsCSSValue_Array_HasThreadSafeRefCnt = root::mozilla::FalseType; pub type nsCSSValue_Array_HasThreadSafeRefCnt = root::mozilla::TrueType;
#[test] #[test]
fn bindgen_test_layout_nsCSSValue_Array() { fn bindgen_test_layout_nsCSSValue_Array() {
assert_eq!(::std::mem::size_of::<nsCSSValue_Array>() , 40usize , assert_eq!(::std::mem::size_of::<nsCSSValue_Array>() , 32usize ,
concat ! ( "Size of: " , stringify ! ( nsCSSValue_Array ) concat ! ( "Size of: " , stringify ! ( nsCSSValue_Array )
)); ));
assert_eq! (::std::mem::align_of::<nsCSSValue_Array>() , 8usize , assert_eq! (::std::mem::align_of::<nsCSSValue_Array>() , 8usize ,
@ -20181,60 +20181,17 @@ pub mod root {
const _ as usize } , 0usize , concat ! ( const _ as usize } , 0usize , concat ! (
"Alignment of field: " , stringify ! ( nsCSSValue_Array ) "Alignment of field: " , stringify ! ( nsCSSValue_Array )
, "::" , stringify ! ( mRefCnt ) )); , "::" , stringify ! ( mRefCnt ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const nsCSSValue_Array ) ) . _mOwningThread
as * const _ as usize } , 8usize , concat ! (
"Alignment of field: " , stringify ! ( nsCSSValue_Array )
, "::" , stringify ! ( _mOwningThread ) ));
assert_eq! (unsafe { assert_eq! (unsafe {
& ( * ( 0 as * const nsCSSValue_Array ) ) . mCount as * & ( * ( 0 as * const nsCSSValue_Array ) ) . mCount as *
const _ as usize } , 16usize , concat ! ( const _ as usize } , 8usize , concat ! (
"Alignment of field: " , stringify ! ( nsCSSValue_Array ) "Alignment of field: " , stringify ! ( nsCSSValue_Array )
, "::" , stringify ! ( mCount ) )); , "::" , stringify ! ( mCount ) ));
assert_eq! (unsafe { assert_eq! (unsafe {
& ( * ( 0 as * const nsCSSValue_Array ) ) . mArray as * & ( * ( 0 as * const nsCSSValue_Array ) ) . mArray as *
const _ as usize } , 24usize , concat ! ( const _ as usize } , 16usize , concat ! (
"Alignment of field: " , stringify ! ( nsCSSValue_Array ) "Alignment of field: " , stringify ! ( nsCSSValue_Array )
, "::" , stringify ! ( mArray ) )); , "::" , stringify ! ( mArray ) ));
} }
#[repr(C)]
#[derive(Debug)]
pub struct nsCSSValue_ThreadSafeArray {
pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
pub mCount: usize,
pub mArray: [root::nsCSSValue; 1usize],
}
pub type nsCSSValue_ThreadSafeArray_HasThreadSafeRefCnt =
root::mozilla::TrueType;
#[test]
fn bindgen_test_layout_nsCSSValue_ThreadSafeArray() {
assert_eq!(::std::mem::size_of::<nsCSSValue_ThreadSafeArray>() ,
32usize , concat ! (
"Size of: " , stringify ! ( nsCSSValue_ThreadSafeArray )
));
assert_eq! (::std::mem::align_of::<nsCSSValue_ThreadSafeArray>() ,
8usize , concat ! (
"Alignment of " , stringify ! ( nsCSSValue_ThreadSafeArray
) ));
assert_eq! (unsafe {
& ( * ( 0 as * const nsCSSValue_ThreadSafeArray ) ) .
mRefCnt as * const _ as usize } , 0usize , concat ! (
"Alignment of field: " , stringify ! (
nsCSSValue_ThreadSafeArray ) , "::" , stringify ! (
mRefCnt ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const nsCSSValue_ThreadSafeArray ) ) .
mCount as * const _ as usize } , 8usize , concat ! (
"Alignment of field: " , stringify ! (
nsCSSValue_ThreadSafeArray ) , "::" , stringify ! ( mCount
) ));
assert_eq! (unsafe {
& ( * ( 0 as * const nsCSSValue_ThreadSafeArray ) ) .
mArray as * const _ as usize } , 16usize , concat ! (
"Alignment of field: " , stringify ! (
nsCSSValue_ThreadSafeArray ) , "::" , stringify ! ( mArray
) ));
}
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsCSSValue_Serialization { pub enum nsCSSValue_Serialization {
@ -20250,7 +20207,6 @@ pub mod root {
pub mColor: root::__BindgenUnionField<root::nscolor>, pub mColor: root::__BindgenUnionField<root::nscolor>,
pub mAtom: root::__BindgenUnionField<*mut root::nsIAtom>, pub mAtom: root::__BindgenUnionField<*mut root::nsIAtom>,
pub mArray: root::__BindgenUnionField<*mut root::nsCSSValue_Array>, pub mArray: root::__BindgenUnionField<*mut root::nsCSSValue_Array>,
pub mThreadSafeArray: root::__BindgenUnionField<*mut root::nsCSSValue_ThreadSafeArray>,
pub mURL: root::__BindgenUnionField<*mut root::mozilla::css::URLValue>, pub mURL: root::__BindgenUnionField<*mut root::mozilla::css::URLValue>,
pub mImage: root::__BindgenUnionField<*mut root::mozilla::css::ImageValue>, pub mImage: root::__BindgenUnionField<*mut root::mozilla::css::ImageValue>,
pub mGridTemplateAreas: root::__BindgenUnionField<*mut root::mozilla::css::GridTemplateAreasValue>, pub mGridTemplateAreas: root::__BindgenUnionField<*mut root::mozilla::css::GridTemplateAreasValue>,
@ -20314,13 +20270,6 @@ pub mod root {
"Alignment of field: " , stringify ! ( "Alignment of field: " , stringify ! (
nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! ( mArray ) nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! ( mArray )
)); ));
assert_eq! (unsafe {
& ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) .
mThreadSafeArray as * const _ as usize } , 0usize , concat
! (
"Alignment of field: " , stringify ! (
nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! (
mThreadSafeArray ) ));
assert_eq! (unsafe { assert_eq! (unsafe {
& ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) . mURL & ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) . mURL
as * const _ as usize } , 0usize , concat ! ( as * const _ as usize } , 0usize , concat ! (
@ -24963,7 +24912,7 @@ pub mod root {
pub struct nsStyleContentData__bindgen_ty_1 { pub struct nsStyleContentData__bindgen_ty_1 {
pub mString: root::__BindgenUnionField<*mut u16>, pub mString: root::__BindgenUnionField<*mut u16>,
pub mImage: root::__BindgenUnionField<*mut root::nsStyleImageRequest>, pub mImage: root::__BindgenUnionField<*mut root::nsStyleImageRequest>,
pub mCounters: root::__BindgenUnionField<*mut root::nsCSSValue_ThreadSafeArray>, pub mCounters: root::__BindgenUnionField<*mut root::nsCSSValue_Array>,
pub bindgen_union_field: u64, pub bindgen_union_field: u64,
} }
#[test] #[test]

View file

@ -8193,6 +8193,7 @@ pub mod root {
} }
pub type pair_first_type<_T1> = _T1; pub type pair_first_type<_T1> = _T1;
pub type pair_second_type<_T2> = _T2; pub type pair_second_type<_T2> = _T2;
pub type pair__PCCP = [u8; 0usize];
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct input_iterator_tag { pub struct input_iterator_tag {
@ -15076,66 +15077,66 @@ pub mod root {
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]
pub struct nsDOMMutationObserver([u8; 0]); pub struct nsDOMMutationObserver([u8; 0]);
pub const NODE_HAS_LISTENERMANAGER: root::_bindgen_ty_105 = pub const NODE_HAS_LISTENERMANAGER: root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_HAS_LISTENERMANAGER; _bindgen_ty_91::NODE_HAS_LISTENERMANAGER;
pub const NODE_HAS_PROPERTIES: root::_bindgen_ty_105 = pub const NODE_HAS_PROPERTIES: root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_HAS_PROPERTIES; _bindgen_ty_91::NODE_HAS_PROPERTIES;
pub const NODE_IS_ANONYMOUS_ROOT: root::_bindgen_ty_105 = pub const NODE_IS_ANONYMOUS_ROOT: root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_IS_ANONYMOUS_ROOT; _bindgen_ty_91::NODE_IS_ANONYMOUS_ROOT;
pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: root::_bindgen_ty_105 = pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE; _bindgen_ty_91::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE;
pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: root::_bindgen_ty_105 = pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_IS_NATIVE_ANONYMOUS_ROOT; _bindgen_ty_91::NODE_IS_NATIVE_ANONYMOUS_ROOT;
pub const NODE_FORCE_XBL_BINDINGS: root::_bindgen_ty_105 = pub const NODE_FORCE_XBL_BINDINGS: root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_FORCE_XBL_BINDINGS; _bindgen_ty_91::NODE_FORCE_XBL_BINDINGS;
pub const NODE_MAY_BE_IN_BINDING_MNGR: root::_bindgen_ty_105 = pub const NODE_MAY_BE_IN_BINDING_MNGR: root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_MAY_BE_IN_BINDING_MNGR; _bindgen_ty_91::NODE_MAY_BE_IN_BINDING_MNGR;
pub const NODE_IS_EDITABLE: root::_bindgen_ty_105 = pub const NODE_IS_EDITABLE: root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_IS_EDITABLE; _bindgen_ty_91::NODE_IS_EDITABLE;
pub const NODE_IS_NATIVE_ANONYMOUS: root::_bindgen_ty_105 = pub const NODE_IS_NATIVE_ANONYMOUS: root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_IS_NATIVE_ANONYMOUS; _bindgen_ty_91::NODE_IS_NATIVE_ANONYMOUS;
pub const NODE_IS_IN_SHADOW_TREE: root::_bindgen_ty_105 = pub const NODE_IS_IN_SHADOW_TREE: root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_IS_IN_SHADOW_TREE; _bindgen_ty_91::NODE_IS_IN_SHADOW_TREE;
pub const NODE_HAS_EMPTY_SELECTOR: root::_bindgen_ty_105 = pub const NODE_HAS_EMPTY_SELECTOR: root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_HAS_EMPTY_SELECTOR; _bindgen_ty_91::NODE_HAS_EMPTY_SELECTOR;
pub const NODE_HAS_SLOW_SELECTOR: root::_bindgen_ty_105 = pub const NODE_HAS_SLOW_SELECTOR: root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_HAS_SLOW_SELECTOR; _bindgen_ty_91::NODE_HAS_SLOW_SELECTOR;
pub const NODE_HAS_EDGE_CHILD_SELECTOR: root::_bindgen_ty_105 = pub const NODE_HAS_EDGE_CHILD_SELECTOR: root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_HAS_EDGE_CHILD_SELECTOR; _bindgen_ty_91::NODE_HAS_EDGE_CHILD_SELECTOR;
pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: root::_bindgen_ty_105 = pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS; _bindgen_ty_91::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS;
pub const NODE_ALL_SELECTOR_FLAGS: root::_bindgen_ty_105 = pub const NODE_ALL_SELECTOR_FLAGS: root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_ALL_SELECTOR_FLAGS; _bindgen_ty_91::NODE_ALL_SELECTOR_FLAGS;
pub const NODE_NEEDS_FRAME: root::_bindgen_ty_105 = pub const NODE_NEEDS_FRAME: root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_NEEDS_FRAME; _bindgen_ty_91::NODE_NEEDS_FRAME;
pub const NODE_DESCENDANTS_NEED_FRAMES: root::_bindgen_ty_105 = pub const NODE_DESCENDANTS_NEED_FRAMES: root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_DESCENDANTS_NEED_FRAMES; _bindgen_ty_91::NODE_DESCENDANTS_NEED_FRAMES;
pub const NODE_HAS_ACCESSKEY: root::_bindgen_ty_105 = pub const NODE_HAS_ACCESSKEY: root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_HAS_ACCESSKEY; _bindgen_ty_91::NODE_HAS_ACCESSKEY;
pub const NODE_HAS_DIRECTION_RTL: root::_bindgen_ty_105 = pub const NODE_HAS_DIRECTION_RTL: root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_HAS_DIRECTION_RTL; _bindgen_ty_91::NODE_HAS_DIRECTION_RTL;
pub const NODE_HAS_DIRECTION_LTR: root::_bindgen_ty_105 = pub const NODE_HAS_DIRECTION_LTR: root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_HAS_DIRECTION_LTR; _bindgen_ty_91::NODE_HAS_DIRECTION_LTR;
pub const NODE_ALL_DIRECTION_FLAGS: root::_bindgen_ty_105 = pub const NODE_ALL_DIRECTION_FLAGS: root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_ALL_DIRECTION_FLAGS; _bindgen_ty_91::NODE_ALL_DIRECTION_FLAGS;
pub const NODE_CHROME_ONLY_ACCESS: root::_bindgen_ty_105 = pub const NODE_CHROME_ONLY_ACCESS: root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_CHROME_ONLY_ACCESS; _bindgen_ty_91::NODE_CHROME_ONLY_ACCESS;
pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: root::_bindgen_ty_105 = pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS; _bindgen_ty_91::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS;
pub const NODE_SHARED_RESTYLE_BIT_1: root::_bindgen_ty_105 = pub const NODE_SHARED_RESTYLE_BIT_1: root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_SHARED_RESTYLE_BIT_1; _bindgen_ty_91::NODE_SHARED_RESTYLE_BIT_1;
pub const NODE_SHARED_RESTYLE_BIT_2: root::_bindgen_ty_105 = pub const NODE_SHARED_RESTYLE_BIT_2: root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_SHARED_RESTYLE_BIT_2; _bindgen_ty_91::NODE_SHARED_RESTYLE_BIT_2;
pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: root::_bindgen_ty_105 = pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_SHARED_RESTYLE_BIT_1; _bindgen_ty_91::NODE_SHARED_RESTYLE_BIT_1;
pub const NODE_HAS_ANIMATION_ONLY_DIRTY_DESCENDANTS_FOR_SERVO: pub const NODE_HAS_ANIMATION_ONLY_DIRTY_DESCENDANTS_FOR_SERVO:
root::_bindgen_ty_105 = root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_SHARED_RESTYLE_BIT_2; _bindgen_ty_91::NODE_SHARED_RESTYLE_BIT_2;
pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: root::_bindgen_ty_105 = pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: root::_bindgen_ty_91 =
_bindgen_ty_105::NODE_TYPE_SPECIFIC_BITS_OFFSET; _bindgen_ty_91::NODE_TYPE_SPECIFIC_BITS_OFFSET;
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum _bindgen_ty_105 { pub enum _bindgen_ty_91 {
NODE_HAS_LISTENERMANAGER = 4, NODE_HAS_LISTENERMANAGER = 4,
NODE_HAS_PROPERTIES = 8, NODE_HAS_PROPERTIES = 8,
NODE_IS_ANONYMOUS_ROOT = 16, NODE_IS_ANONYMOUS_ROOT = 16,
@ -18966,9 +18967,9 @@ pub mod root {
eCSSUnit_Local_Font = 15, eCSSUnit_Local_Font = 15,
eCSSUnit_Font_Format = 16, eCSSUnit_Font_Format = 16,
eCSSUnit_Element = 17, eCSSUnit_Element = 17,
eCSSUnit_Counter = 20, eCSSUnit_Array = 20,
eCSSUnit_Counters = 21, eCSSUnit_Counter = 21,
eCSSUnit_Array = 22, eCSSUnit_Counters = 22,
eCSSUnit_Cubic_Bezier = 23, eCSSUnit_Cubic_Bezier = 23,
eCSSUnit_Steps = 24, eCSSUnit_Steps = 24,
eCSSUnit_Symbols = 25, eCSSUnit_Symbols = 25,
@ -19542,11 +19543,11 @@ pub mod root {
#[repr(C)] #[repr(C)]
#[derive(Debug)] #[derive(Debug)]
pub struct nsCSSValue_Array { pub struct nsCSSValue_Array {
pub mRefCnt: root::nsAutoRefCnt, pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
pub mCount: usize, pub mCount: usize,
pub mArray: [root::nsCSSValue; 1usize], pub mArray: [root::nsCSSValue; 1usize],
} }
pub type nsCSSValue_Array_HasThreadSafeRefCnt = root::mozilla::FalseType; pub type nsCSSValue_Array_HasThreadSafeRefCnt = root::mozilla::TrueType;
#[test] #[test]
fn bindgen_test_layout_nsCSSValue_Array() { fn bindgen_test_layout_nsCSSValue_Array() {
assert_eq!(::std::mem::size_of::<nsCSSValue_Array>() , 32usize , assert_eq!(::std::mem::size_of::<nsCSSValue_Array>() , 32usize ,
@ -19571,44 +19572,6 @@ pub mod root {
"Alignment of field: " , stringify ! ( nsCSSValue_Array ) "Alignment of field: " , stringify ! ( nsCSSValue_Array )
, "::" , stringify ! ( mArray ) )); , "::" , stringify ! ( mArray ) ));
} }
#[repr(C)]
#[derive(Debug)]
pub struct nsCSSValue_ThreadSafeArray {
pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
pub mCount: usize,
pub mArray: [root::nsCSSValue; 1usize],
}
pub type nsCSSValue_ThreadSafeArray_HasThreadSafeRefCnt =
root::mozilla::TrueType;
#[test]
fn bindgen_test_layout_nsCSSValue_ThreadSafeArray() {
assert_eq!(::std::mem::size_of::<nsCSSValue_ThreadSafeArray>() ,
32usize , concat ! (
"Size of: " , stringify ! ( nsCSSValue_ThreadSafeArray )
));
assert_eq! (::std::mem::align_of::<nsCSSValue_ThreadSafeArray>() ,
8usize , concat ! (
"Alignment of " , stringify ! ( nsCSSValue_ThreadSafeArray
) ));
assert_eq! (unsafe {
& ( * ( 0 as * const nsCSSValue_ThreadSafeArray ) ) .
mRefCnt as * const _ as usize } , 0usize , concat ! (
"Alignment of field: " , stringify ! (
nsCSSValue_ThreadSafeArray ) , "::" , stringify ! (
mRefCnt ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const nsCSSValue_ThreadSafeArray ) ) .
mCount as * const _ as usize } , 8usize , concat ! (
"Alignment of field: " , stringify ! (
nsCSSValue_ThreadSafeArray ) , "::" , stringify ! ( mCount
) ));
assert_eq! (unsafe {
& ( * ( 0 as * const nsCSSValue_ThreadSafeArray ) ) .
mArray as * const _ as usize } , 16usize , concat ! (
"Alignment of field: " , stringify ! (
nsCSSValue_ThreadSafeArray ) , "::" , stringify ! ( mArray
) ));
}
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsCSSValue_Serialization { pub enum nsCSSValue_Serialization {
@ -19624,7 +19587,6 @@ pub mod root {
pub mColor: root::__BindgenUnionField<root::nscolor>, pub mColor: root::__BindgenUnionField<root::nscolor>,
pub mAtom: root::__BindgenUnionField<*mut root::nsIAtom>, pub mAtom: root::__BindgenUnionField<*mut root::nsIAtom>,
pub mArray: root::__BindgenUnionField<*mut root::nsCSSValue_Array>, pub mArray: root::__BindgenUnionField<*mut root::nsCSSValue_Array>,
pub mThreadSafeArray: root::__BindgenUnionField<*mut root::nsCSSValue_ThreadSafeArray>,
pub mURL: root::__BindgenUnionField<*mut root::mozilla::css::URLValue>, pub mURL: root::__BindgenUnionField<*mut root::mozilla::css::URLValue>,
pub mImage: root::__BindgenUnionField<*mut root::mozilla::css::ImageValue>, pub mImage: root::__BindgenUnionField<*mut root::mozilla::css::ImageValue>,
pub mGridTemplateAreas: root::__BindgenUnionField<*mut root::mozilla::css::GridTemplateAreasValue>, pub mGridTemplateAreas: root::__BindgenUnionField<*mut root::mozilla::css::GridTemplateAreasValue>,
@ -19688,13 +19650,6 @@ pub mod root {
"Alignment of field: " , stringify ! ( "Alignment of field: " , stringify ! (
nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! ( mArray ) nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! ( mArray )
)); ));
assert_eq! (unsafe {
& ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) .
mThreadSafeArray as * const _ as usize } , 0usize , concat
! (
"Alignment of field: " , stringify ! (
nsCSSValue__bindgen_ty_1 ) , "::" , stringify ! (
mThreadSafeArray ) ));
assert_eq! (unsafe { assert_eq! (unsafe {
& ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) . mURL & ( * ( 0 as * const nsCSSValue__bindgen_ty_1 ) ) . mURL
as * const _ as usize } , 0usize , concat ! ( as * const _ as usize } , 0usize , concat ! (
@ -24304,7 +24259,7 @@ pub mod root {
pub struct nsStyleContentData__bindgen_ty_1 { pub struct nsStyleContentData__bindgen_ty_1 {
pub mString: root::__BindgenUnionField<*mut u16>, pub mString: root::__BindgenUnionField<*mut u16>,
pub mImage: root::__BindgenUnionField<*mut root::nsStyleImageRequest>, pub mImage: root::__BindgenUnionField<*mut root::nsStyleImageRequest>,
pub mCounters: root::__BindgenUnionField<*mut root::nsCSSValue_ThreadSafeArray>, pub mCounters: root::__BindgenUnionField<*mut root::nsCSSValue_Array>,
pub bindgen_union_field: u64, pub bindgen_union_field: u64,
} }
#[test] #[test]

View file

@ -7,7 +7,7 @@
use app_units::Au; use app_units::Au;
use gecko_bindings::bindings; use gecko_bindings::bindings;
use gecko_bindings::structs::{nsCSSValue, nsCSSUnit}; use gecko_bindings::structs::{nsCSSValue, nsCSSUnit};
use gecko_bindings::structs::{nsCSSValue_Array, nsCSSValue_ThreadSafeArray, nscolor}; use gecko_bindings::structs::{nsCSSValue_Array, nscolor};
use std::mem; use std::mem;
use std::ops::{Index, IndexMut}; use std::ops::{Index, IndexMut};
use std::slice; use std::slice;
@ -127,9 +127,7 @@ impl Drop for nsCSSValue {
} }
} }
macro_rules! decl_cssarray_sugar { impl nsCSSValue_Array {
($name:ident) => {
impl $name {
/// Return the length of this `nsCSSValue::Array` /// Return the length of this `nsCSSValue::Array`
#[inline] #[inline]
pub fn len(&self) -> usize { pub fn len(&self) -> usize {
@ -154,7 +152,7 @@ impl $name {
} }
} }
impl Index<usize> for $name { impl Index<usize> for nsCSSValue_Array {
type Output = nsCSSValue; type Output = nsCSSValue;
#[inline] #[inline]
fn index(&self, i: usize) -> &nsCSSValue { fn index(&self, i: usize) -> &nsCSSValue {
@ -162,14 +160,9 @@ impl Index<usize> for $name {
} }
} }
impl IndexMut<usize> for $name { impl IndexMut<usize> for nsCSSValue_Array {
#[inline] #[inline]
fn index_mut(&mut self, i: usize) -> &mut nsCSSValue { fn index_mut(&mut self, i: usize) -> &mut nsCSSValue {
&mut self.as_mut_slice()[i] &mut self.as_mut_slice()[i]
} }
} }
}
}
decl_cssarray_sugar!(nsCSSValue_Array);
decl_cssarray_sugar!(nsCSSValue_ThreadSafeArray);