Use a wrapper class to maintain the mBinding invariant and stop resolving during the cascade.

This commit is contained in:
Bobby Holley 2017-03-16 23:00:33 -07:00
parent e0f1855c10
commit 16e04046b5
4 changed files with 369 additions and 428 deletions

View file

@ -8357,12 +8357,7 @@ pub mod root {
}
pub type pair_first_type<_T1> = _T1;
pub type pair_second_type<_T2> = _T2;
#[repr(C)]
pub struct atomic<_Tp> {
pub _base: (),
pub _phantom_0: ::std::marker::PhantomData<_Tp>,
}
pub type atomic___base = [u8; 0usize];
pub type pair__PCCP = [u8; 0usize];
#[repr(C)]
#[derive(Debug, Copy)]
pub struct input_iterator_tag {
@ -8382,62 +8377,6 @@ pub mod root {
fn clone(&self) -> Self { *self }
}
#[repr(C)]
#[derive(Debug, Copy)]
pub struct forward_iterator_tag {
pub _address: u8,
}
#[test]
fn bindgen_test_layout_forward_iterator_tag() {
assert_eq!(::std::mem::size_of::<forward_iterator_tag>() , 1usize
, concat ! (
"Size of: " , stringify ! ( forward_iterator_tag ) ));
assert_eq! (::std::mem::align_of::<forward_iterator_tag>() ,
1usize , concat ! (
"Alignment of " , stringify ! ( forward_iterator_tag )
));
}
impl Clone for forward_iterator_tag {
fn clone(&self) -> Self { *self }
}
#[repr(C)]
#[derive(Debug, Copy)]
pub struct bidirectional_iterator_tag {
pub _address: u8,
}
#[test]
fn bindgen_test_layout_bidirectional_iterator_tag() {
assert_eq!(::std::mem::size_of::<bidirectional_iterator_tag>() ,
1usize , concat ! (
"Size of: " , stringify ! ( bidirectional_iterator_tag
) ));
assert_eq! (::std::mem::align_of::<bidirectional_iterator_tag>() ,
1usize , concat ! (
"Alignment of " , stringify ! (
bidirectional_iterator_tag ) ));
}
impl Clone for bidirectional_iterator_tag {
fn clone(&self) -> Self { *self }
}
#[repr(C)]
#[derive(Debug, Copy)]
pub struct random_access_iterator_tag {
pub _address: u8,
}
#[test]
fn bindgen_test_layout_random_access_iterator_tag() {
assert_eq!(::std::mem::size_of::<random_access_iterator_tag>() ,
1usize , concat ! (
"Size of: " , stringify ! ( random_access_iterator_tag
) ));
assert_eq! (::std::mem::align_of::<random_access_iterator_tag>() ,
1usize , concat ! (
"Alignment of " , stringify ! (
random_access_iterator_tag ) ));
}
impl Clone for random_access_iterator_tag {
fn clone(&self) -> Self { *self }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct iterator<_Category, _Tp, _Distance, _Pointer, _Reference> {
pub _address: u8,
@ -8447,209 +8386,250 @@ pub mod root {
pub _phantom_3: ::std::marker::PhantomData<_Pointer>,
pub _phantom_4: ::std::marker::PhantomData<_Reference>,
}
pub type iterator_iterator_category<_Category> = _Category;
pub type iterator_value_type<_Tp> = _Tp;
pub type iterator_difference_type<_Distance> = _Distance;
pub type iterator_pointer<_Pointer> = _Pointer;
pub type iterator_reference<_Reference> = _Reference;
pub type iterator_iterator_category<_Category> = _Category;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __bit_const_reference<_Cp> {
pub __seg_: root::std::__bit_const_reference___storage_pointer<_Cp>,
pub __mask_: root::std::__bit_const_reference___storage_type<_Cp>,
#[derive(Debug)]
pub struct atomic<_Tp> {
pub _M_i: _Tp,
}
pub type __bit_const_reference___storage_type<_Cp> = _Cp;
pub type __bit_const_reference___storage_pointer<_Cp> = _Cp;
pub mod chrono {
#[allow(unused_imports)]
use self::super::super::super::root;
}
pub type __int64_t = ::std::os::raw::c_longlong;
pub type __darwin_va_list = root::__builtin_va_list;
pub type __darwin_off_t = root::__int64_t;
pub type va_list = root::__darwin_va_list;
pub type fpos_t = root::__darwin_off_t;
}
pub mod __gnu_cxx {
#[allow(unused_imports)]
use self::super::super::root;
}
pub type __off_t = ::std::os::raw::c_long;
pub type __off64_t = ::std::os::raw::c_long;
#[repr(C)]
#[derive(Debug, Copy)]
pub struct __sbuf {
pub _base: *mut ::std::os::raw::c_uchar,
pub _size: ::std::os::raw::c_int,
pub struct _IO_FILE {
pub _flags: ::std::os::raw::c_int,
pub _IO_read_ptr: *mut ::std::os::raw::c_char,
pub _IO_read_end: *mut ::std::os::raw::c_char,
pub _IO_read_base: *mut ::std::os::raw::c_char,
pub _IO_write_base: *mut ::std::os::raw::c_char,
pub _IO_write_ptr: *mut ::std::os::raw::c_char,
pub _IO_write_end: *mut ::std::os::raw::c_char,
pub _IO_buf_base: *mut ::std::os::raw::c_char,
pub _IO_buf_end: *mut ::std::os::raw::c_char,
pub _IO_save_base: *mut ::std::os::raw::c_char,
pub _IO_backup_base: *mut ::std::os::raw::c_char,
pub _IO_save_end: *mut ::std::os::raw::c_char,
pub _markers: *mut root::_IO_marker,
pub _chain: *mut root::_IO_FILE,
pub _fileno: ::std::os::raw::c_int,
pub _flags2: ::std::os::raw::c_int,
pub _old_offset: root::__off_t,
pub _cur_column: ::std::os::raw::c_ushort,
pub _vtable_offset: ::std::os::raw::c_char,
pub _shortbuf: [::std::os::raw::c_char; 1usize],
pub _lock: *mut root::_IO_lock_t,
pub _offset: root::__off64_t,
pub __pad1: *mut ::std::os::raw::c_void,
pub __pad2: *mut ::std::os::raw::c_void,
pub __pad3: *mut ::std::os::raw::c_void,
pub __pad4: *mut ::std::os::raw::c_void,
pub __pad5: usize,
pub _mode: ::std::os::raw::c_int,
pub _unused2: [::std::os::raw::c_char; 20usize],
}
#[test]
fn bindgen_test_layout___sbuf() {
assert_eq!(::std::mem::size_of::<__sbuf>() , 16usize , concat ! (
"Size of: " , stringify ! ( __sbuf ) ));
assert_eq! (::std::mem::align_of::<__sbuf>() , 8usize , concat ! (
"Alignment of " , stringify ! ( __sbuf ) ));
fn bindgen_test_layout__IO_FILE() {
assert_eq!(::std::mem::size_of::<_IO_FILE>() , 216usize , concat ! (
"Size of: " , stringify ! ( _IO_FILE ) ));
assert_eq! (::std::mem::align_of::<_IO_FILE>() , 8usize , concat ! (
"Alignment of " , stringify ! ( _IO_FILE ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const __sbuf ) ) . _base as * const _ as
& ( * ( 0 as * const _IO_FILE ) ) . _flags as * const _ as
usize } , 0usize , concat ! (
"Alignment of field: " , stringify ! ( __sbuf ) , "::" ,
stringify ! ( _base ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const __sbuf ) ) . _size as * const _ as
usize } , 8usize , concat ! (
"Alignment of field: " , stringify ! ( __sbuf ) , "::" ,
stringify ! ( _size ) ));
}
impl Clone for __sbuf {
fn clone(&self) -> Self { *self }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __sFILEX([u8; 0]);
#[repr(C)]
#[derive(Debug, Copy)]
pub struct __sFILE {
pub _p: *mut ::std::os::raw::c_uchar,
pub _r: ::std::os::raw::c_int,
pub _w: ::std::os::raw::c_int,
pub _flags: ::std::os::raw::c_short,
pub _file: ::std::os::raw::c_short,
pub _bf: root::__sbuf,
pub _lbfsize: ::std::os::raw::c_int,
pub _cookie: *mut ::std::os::raw::c_void,
pub _close: ::std::option::Option<unsafe extern "C" fn(arg1:
*mut ::std::os::raw::c_void)
-> ::std::os::raw::c_int>,
pub _read: ::std::option::Option<unsafe extern "C" fn(arg1:
*mut ::std::os::raw::c_void,
arg2:
*mut ::std::os::raw::c_char,
arg3:
::std::os::raw::c_int)
-> ::std::os::raw::c_int>,
pub _seek: ::std::option::Option<unsafe extern "C" fn(arg1:
*mut ::std::os::raw::c_void,
arg2:
root::fpos_t,
arg3:
::std::os::raw::c_int)
-> ::std::os::raw::c_longlong>,
pub _write: ::std::option::Option<unsafe extern "C" fn(arg1:
*mut ::std::os::raw::c_void,
arg2:
*const ::std::os::raw::c_char,
arg3:
::std::os::raw::c_int)
-> ::std::os::raw::c_int>,
pub _ub: root::__sbuf,
pub _extra: *mut root::__sFILEX,
pub _ur: ::std::os::raw::c_int,
pub _ubuf: [::std::os::raw::c_uchar; 3usize],
pub _nbuf: [::std::os::raw::c_uchar; 1usize],
pub _lb: root::__sbuf,
pub _blksize: ::std::os::raw::c_int,
pub _offset: root::fpos_t,
}
#[test]
fn bindgen_test_layout___sFILE() {
assert_eq!(::std::mem::size_of::<__sFILE>() , 152usize , concat ! (
"Size of: " , stringify ! ( __sFILE ) ));
assert_eq! (::std::mem::align_of::<__sFILE>() , 8usize , concat ! (
"Alignment of " , stringify ! ( __sFILE ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const __sFILE ) ) . _p as * const _ as
usize } , 0usize , concat ! (
"Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
stringify ! ( _p ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const __sFILE ) ) . _r as * const _ as
usize } , 8usize , concat ! (
"Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
stringify ! ( _r ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const __sFILE ) ) . _w as * const _ as
usize } , 12usize , concat ! (
"Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
stringify ! ( _w ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const __sFILE ) ) . _flags as * const _ as
usize } , 16usize , concat ! (
"Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( _flags ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const __sFILE ) ) . _file as * const _ as
usize } , 18usize , concat ! (
"Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
stringify ! ( _file ) ));
& ( * ( 0 as * const _IO_FILE ) ) . _IO_read_ptr as *
const _ as usize } , 8usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( _IO_read_ptr ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const __sFILE ) ) . _bf as * const _ as
usize } , 24usize , concat ! (
"Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
stringify ! ( _bf ) ));
& ( * ( 0 as * const _IO_FILE ) ) . _IO_read_end as *
const _ as usize } , 16usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( _IO_read_end ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const __sFILE ) ) . _lbfsize as * const _
as usize } , 40usize , concat ! (
"Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
stringify ! ( _lbfsize ) ));
& ( * ( 0 as * const _IO_FILE ) ) . _IO_read_base as *
const _ as usize } , 24usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( _IO_read_base ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const __sFILE ) ) . _cookie as * const _ as
usize } , 48usize , concat ! (
"Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
stringify ! ( _cookie ) ));
& ( * ( 0 as * const _IO_FILE ) ) . _IO_write_base as *
const _ as usize } , 32usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( _IO_write_base ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const __sFILE ) ) . _close as * const _ as
usize } , 56usize , concat ! (
"Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
stringify ! ( _close ) ));
& ( * ( 0 as * const _IO_FILE ) ) . _IO_write_ptr as *
const _ as usize } , 40usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( _IO_write_ptr ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const __sFILE ) ) . _read as * const _ as
usize } , 64usize , concat ! (
"Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
stringify ! ( _read ) ));
& ( * ( 0 as * const _IO_FILE ) ) . _IO_write_end as *
const _ as usize } , 48usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( _IO_write_end ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const __sFILE ) ) . _seek as * const _ as
usize } , 72usize , concat ! (
"Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
stringify ! ( _seek ) ));
& ( * ( 0 as * const _IO_FILE ) ) . _IO_buf_base as *
const _ as usize } , 56usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( _IO_buf_base ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const __sFILE ) ) . _write as * const _ as
usize } , 80usize , concat ! (
"Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
stringify ! ( _write ) ));
& ( * ( 0 as * const _IO_FILE ) ) . _IO_buf_end as * const
_ as usize } , 64usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( _IO_buf_end ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const __sFILE ) ) . _ub as * const _ as
usize } , 88usize , concat ! (
"Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
stringify ! ( _ub ) ));
& ( * ( 0 as * const _IO_FILE ) ) . _IO_save_base as *
const _ as usize } , 72usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( _IO_save_base ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const __sFILE ) ) . _extra as * const _ as
& ( * ( 0 as * const _IO_FILE ) ) . _IO_backup_base as *
const _ as usize } , 80usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( _IO_backup_base ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const _IO_FILE ) ) . _IO_save_end as *
const _ as usize } , 88usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( _IO_save_end ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const _IO_FILE ) ) . _markers as * const _
as usize } , 96usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( _markers ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const _IO_FILE ) ) . _chain as * const _ as
usize } , 104usize , concat ! (
"Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
stringify ! ( _extra ) ));
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( _chain ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const __sFILE ) ) . _ur as * const _ as
usize } , 112usize , concat ! (
"Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
stringify ! ( _ur ) ));
& ( * ( 0 as * const _IO_FILE ) ) . _fileno as * const _
as usize } , 112usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( _fileno ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const __sFILE ) ) . _ubuf as * const _ as
usize } , 116usize , concat ! (
"Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
stringify ! ( _ubuf ) ));
& ( * ( 0 as * const _IO_FILE ) ) . _flags2 as * const _
as usize } , 116usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( _flags2 ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const __sFILE ) ) . _nbuf as * const _ as
usize } , 119usize , concat ! (
"Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
stringify ! ( _nbuf ) ));
& ( * ( 0 as * const _IO_FILE ) ) . _old_offset as * const
_ as usize } , 120usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( _old_offset ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const __sFILE ) ) . _lb as * const _ as
usize } , 120usize , concat ! (
"Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
stringify ! ( _lb ) ));
& ( * ( 0 as * const _IO_FILE ) ) . _cur_column as * const
_ as usize } , 128usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( _cur_column ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const __sFILE ) ) . _blksize as * const _
as usize } , 136usize , concat ! (
"Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
stringify ! ( _blksize ) ));
& ( * ( 0 as * const _IO_FILE ) ) . _vtable_offset as *
const _ as usize } , 130usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( _vtable_offset ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const __sFILE ) ) . _offset as * const _ as
usize } , 144usize , concat ! (
"Alignment of field: " , stringify ! ( __sFILE ) , "::" ,
& ( * ( 0 as * const _IO_FILE ) ) . _shortbuf as * const _
as usize } , 131usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( _shortbuf ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const _IO_FILE ) ) . _lock as * const _ as
usize } , 136usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( _lock ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const _IO_FILE ) ) . _offset as * const _
as usize } , 144usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( _offset ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const _IO_FILE ) ) . __pad1 as * const _ as
usize } , 152usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( __pad1 ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const _IO_FILE ) ) . __pad2 as * const _ as
usize } , 160usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( __pad2 ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const _IO_FILE ) ) . __pad3 as * const _ as
usize } , 168usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( __pad3 ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const _IO_FILE ) ) . __pad4 as * const _ as
usize } , 176usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( __pad4 ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const _IO_FILE ) ) . __pad5 as * const _ as
usize } , 184usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( __pad5 ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const _IO_FILE ) ) . _mode as * const _ as
usize } , 192usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( _mode ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const _IO_FILE ) ) . _unused2 as * const _
as usize } , 196usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_FILE ) , "::" ,
stringify ! ( _unused2 ) ));
}
impl Clone for __sFILE {
impl Clone for _IO_FILE {
fn clone(&self) -> Self { *self }
}
pub type FILE = root::_IO_FILE;
pub type va_list = root::__builtin_va_list;
pub type _IO_lock_t = ::std::os::raw::c_void;
#[repr(C)]
#[derive(Debug, Copy)]
pub struct _IO_marker {
pub _next: *mut root::_IO_marker,
pub _sbuf: *mut root::_IO_FILE,
pub _pos: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout__IO_marker() {
assert_eq!(::std::mem::size_of::<_IO_marker>() , 24usize , concat ! (
"Size of: " , stringify ! ( _IO_marker ) ));
assert_eq! (::std::mem::align_of::<_IO_marker>() , 8usize , concat ! (
"Alignment of " , stringify ! ( _IO_marker ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const _IO_marker ) ) . _next as * const _
as usize } , 0usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_marker ) , "::"
, stringify ! ( _next ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const _IO_marker ) ) . _sbuf as * const _
as usize } , 8usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_marker ) , "::"
, stringify ! ( _sbuf ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const _IO_marker ) ) . _pos as * const _ as
usize } , 16usize , concat ! (
"Alignment of field: " , stringify ! ( _IO_marker ) , "::"
, stringify ! ( _pos ) ));
}
impl Clone for _IO_marker {
fn clone(&self) -> Self { *self }
}
pub type FILE = root::__sFILE;
/**
* MozRefCountType is Mozilla's reference count type.
*
@ -15664,63 +15644,63 @@ pub mod root {
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct nsDOMMutationObserver([u8; 0]);
pub const NODE_HAS_LISTENERMANAGER: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_HAS_LISTENERMANAGER;
pub const NODE_HAS_PROPERTIES: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_HAS_PROPERTIES;
pub const NODE_IS_ANONYMOUS_ROOT: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_IS_ANONYMOUS_ROOT;
pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE;
pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_IS_NATIVE_ANONYMOUS_ROOT;
pub const NODE_FORCE_XBL_BINDINGS: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_FORCE_XBL_BINDINGS;
pub const NODE_MAY_BE_IN_BINDING_MNGR: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_MAY_BE_IN_BINDING_MNGR;
pub const NODE_IS_EDITABLE: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_IS_EDITABLE;
pub const NODE_IS_NATIVE_ANONYMOUS: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_IS_NATIVE_ANONYMOUS;
pub const NODE_IS_IN_SHADOW_TREE: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_IS_IN_SHADOW_TREE;
pub const NODE_HAS_EMPTY_SELECTOR: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_HAS_EMPTY_SELECTOR;
pub const NODE_HAS_SLOW_SELECTOR: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_HAS_SLOW_SELECTOR;
pub const NODE_HAS_EDGE_CHILD_SELECTOR: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_HAS_EDGE_CHILD_SELECTOR;
pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS;
pub const NODE_ALL_SELECTOR_FLAGS: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_ALL_SELECTOR_FLAGS;
pub const NODE_NEEDS_FRAME: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_NEEDS_FRAME;
pub const NODE_DESCENDANTS_NEED_FRAMES: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_DESCENDANTS_NEED_FRAMES;
pub const NODE_HAS_ACCESSKEY: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_HAS_ACCESSKEY;
pub const NODE_HAS_DIRECTION_RTL: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_HAS_DIRECTION_RTL;
pub const NODE_HAS_DIRECTION_LTR: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_HAS_DIRECTION_LTR;
pub const NODE_ALL_DIRECTION_FLAGS: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_ALL_DIRECTION_FLAGS;
pub const NODE_CHROME_ONLY_ACCESS: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_CHROME_ONLY_ACCESS;
pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS;
pub const NODE_SHARED_RESTYLE_BIT_1: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_SHARED_RESTYLE_BIT_1;
pub const NODE_SHARED_RESTYLE_BIT_2: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_SHARED_RESTYLE_BIT_2;
pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_SHARED_RESTYLE_BIT_1;
pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_TYPE_SPECIFIC_BITS_OFFSET;
pub const NODE_HAS_LISTENERMANAGER: root::_bindgen_ty_104 =
_bindgen_ty_104::NODE_HAS_LISTENERMANAGER;
pub const NODE_HAS_PROPERTIES: root::_bindgen_ty_104 =
_bindgen_ty_104::NODE_HAS_PROPERTIES;
pub const NODE_IS_ANONYMOUS_ROOT: root::_bindgen_ty_104 =
_bindgen_ty_104::NODE_IS_ANONYMOUS_ROOT;
pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: root::_bindgen_ty_104 =
_bindgen_ty_104::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE;
pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: root::_bindgen_ty_104 =
_bindgen_ty_104::NODE_IS_NATIVE_ANONYMOUS_ROOT;
pub const NODE_FORCE_XBL_BINDINGS: root::_bindgen_ty_104 =
_bindgen_ty_104::NODE_FORCE_XBL_BINDINGS;
pub const NODE_MAY_BE_IN_BINDING_MNGR: root::_bindgen_ty_104 =
_bindgen_ty_104::NODE_MAY_BE_IN_BINDING_MNGR;
pub const NODE_IS_EDITABLE: root::_bindgen_ty_104 =
_bindgen_ty_104::NODE_IS_EDITABLE;
pub const NODE_IS_NATIVE_ANONYMOUS: root::_bindgen_ty_104 =
_bindgen_ty_104::NODE_IS_NATIVE_ANONYMOUS;
pub const NODE_IS_IN_SHADOW_TREE: root::_bindgen_ty_104 =
_bindgen_ty_104::NODE_IS_IN_SHADOW_TREE;
pub const NODE_HAS_EMPTY_SELECTOR: root::_bindgen_ty_104 =
_bindgen_ty_104::NODE_HAS_EMPTY_SELECTOR;
pub const NODE_HAS_SLOW_SELECTOR: root::_bindgen_ty_104 =
_bindgen_ty_104::NODE_HAS_SLOW_SELECTOR;
pub const NODE_HAS_EDGE_CHILD_SELECTOR: root::_bindgen_ty_104 =
_bindgen_ty_104::NODE_HAS_EDGE_CHILD_SELECTOR;
pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: root::_bindgen_ty_104 =
_bindgen_ty_104::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS;
pub const NODE_ALL_SELECTOR_FLAGS: root::_bindgen_ty_104 =
_bindgen_ty_104::NODE_ALL_SELECTOR_FLAGS;
pub const NODE_NEEDS_FRAME: root::_bindgen_ty_104 =
_bindgen_ty_104::NODE_NEEDS_FRAME;
pub const NODE_DESCENDANTS_NEED_FRAMES: root::_bindgen_ty_104 =
_bindgen_ty_104::NODE_DESCENDANTS_NEED_FRAMES;
pub const NODE_HAS_ACCESSKEY: root::_bindgen_ty_104 =
_bindgen_ty_104::NODE_HAS_ACCESSKEY;
pub const NODE_HAS_DIRECTION_RTL: root::_bindgen_ty_104 =
_bindgen_ty_104::NODE_HAS_DIRECTION_RTL;
pub const NODE_HAS_DIRECTION_LTR: root::_bindgen_ty_104 =
_bindgen_ty_104::NODE_HAS_DIRECTION_LTR;
pub const NODE_ALL_DIRECTION_FLAGS: root::_bindgen_ty_104 =
_bindgen_ty_104::NODE_ALL_DIRECTION_FLAGS;
pub const NODE_CHROME_ONLY_ACCESS: root::_bindgen_ty_104 =
_bindgen_ty_104::NODE_CHROME_ONLY_ACCESS;
pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: root::_bindgen_ty_104 =
_bindgen_ty_104::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS;
pub const NODE_SHARED_RESTYLE_BIT_1: root::_bindgen_ty_104 =
_bindgen_ty_104::NODE_SHARED_RESTYLE_BIT_1;
pub const NODE_SHARED_RESTYLE_BIT_2: root::_bindgen_ty_104 =
_bindgen_ty_104::NODE_SHARED_RESTYLE_BIT_2;
pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: root::_bindgen_ty_104 =
_bindgen_ty_104::NODE_SHARED_RESTYLE_BIT_1;
pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: root::_bindgen_ty_104 =
_bindgen_ty_104::NODE_TYPE_SPECIFIC_BITS_OFFSET;
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum _bindgen_ty_28 {
pub enum _bindgen_ty_104 {
NODE_HAS_LISTENERMANAGER = 4,
NODE_HAS_PROPERTIES = 8,
NODE_IS_ANONYMOUS_ROOT = 16,
@ -21792,7 +21772,7 @@ pub mod root {
#[repr(C)]
#[derive(Debug)]
pub struct nsStyleDisplay {
pub mBinding: root::RefPtr<root::mozilla::css::URLValue>,
pub mBinding: root::BindingHolder,
pub mDisplay: root::mozilla::StyleDisplay,
pub mOriginalDisplay: root::mozilla::StyleDisplay,
pub mContain: u8,
@ -24754,6 +24734,23 @@ pub mod root {
}
#[repr(C)]
#[derive(Debug)]
pub struct BindingHolder {
pub mPtr: root::RefPtr<root::mozilla::css::URLValue>,
}
#[test]
fn bindgen_test_layout_BindingHolder() {
assert_eq!(::std::mem::size_of::<BindingHolder>() , 8usize , concat !
( "Size of: " , stringify ! ( BindingHolder ) ));
assert_eq! (::std::mem::align_of::<BindingHolder>() , 8usize , concat
! ( "Alignment of " , stringify ! ( BindingHolder ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const BindingHolder ) ) . mPtr as * const _
as usize } , 0usize , concat ! (
"Alignment of field: " , stringify ! ( BindingHolder ) ,
"::" , stringify ! ( mPtr ) ));
}
#[repr(C)]
#[derive(Debug)]
pub struct nsStyleTable {
pub mLayoutStrategy: u8,
pub mSpan: i32,

View file

@ -8169,12 +8169,7 @@ pub mod root {
}
pub type pair_first_type<_T1> = _T1;
pub type pair_second_type<_T2> = _T2;
#[repr(C)]
pub struct atomic<_Tp> {
pub _base: (),
pub _phantom_0: ::std::marker::PhantomData<_Tp>,
}
pub type atomic___base = [u8; 0usize];
pub type pair__PCCP = [u8; 0usize];
#[repr(C)]
#[derive(Debug, Copy)]
pub struct input_iterator_tag {
@ -8194,62 +8189,6 @@ pub mod root {
fn clone(&self) -> Self { *self }
}
#[repr(C)]
#[derive(Debug, Copy)]
pub struct forward_iterator_tag {
pub _address: u8,
}
#[test]
fn bindgen_test_layout_forward_iterator_tag() {
assert_eq!(::std::mem::size_of::<forward_iterator_tag>() , 1usize
, concat ! (
"Size of: " , stringify ! ( forward_iterator_tag ) ));
assert_eq! (::std::mem::align_of::<forward_iterator_tag>() ,
1usize , concat ! (
"Alignment of " , stringify ! ( forward_iterator_tag )
));
}
impl Clone for forward_iterator_tag {
fn clone(&self) -> Self { *self }
}
#[repr(C)]
#[derive(Debug, Copy)]
pub struct bidirectional_iterator_tag {
pub _address: u8,
}
#[test]
fn bindgen_test_layout_bidirectional_iterator_tag() {
assert_eq!(::std::mem::size_of::<bidirectional_iterator_tag>() ,
1usize , concat ! (
"Size of: " , stringify ! ( bidirectional_iterator_tag
) ));
assert_eq! (::std::mem::align_of::<bidirectional_iterator_tag>() ,
1usize , concat ! (
"Alignment of " , stringify ! (
bidirectional_iterator_tag ) ));
}
impl Clone for bidirectional_iterator_tag {
fn clone(&self) -> Self { *self }
}
#[repr(C)]
#[derive(Debug, Copy)]
pub struct random_access_iterator_tag {
pub _address: u8,
}
#[test]
fn bindgen_test_layout_random_access_iterator_tag() {
assert_eq!(::std::mem::size_of::<random_access_iterator_tag>() ,
1usize , concat ! (
"Size of: " , stringify ! ( random_access_iterator_tag
) ));
assert_eq! (::std::mem::align_of::<random_access_iterator_tag>() ,
1usize , concat ! (
"Alignment of " , stringify ! (
random_access_iterator_tag ) ));
}
impl Clone for random_access_iterator_tag {
fn clone(&self) -> Self { *self }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct iterator<_Category, _Tp, _Distance, _Pointer, _Reference> {
pub _address: u8,
@ -8259,22 +8198,22 @@ pub mod root {
pub _phantom_3: ::std::marker::PhantomData<_Pointer>,
pub _phantom_4: ::std::marker::PhantomData<_Reference>,
}
pub type iterator_iterator_category<_Category> = _Category;
pub type iterator_value_type<_Tp> = _Tp;
pub type iterator_difference_type<_Distance> = _Distance;
pub type iterator_pointer<_Pointer> = _Pointer;
pub type iterator_reference<_Reference> = _Reference;
pub type iterator_iterator_category<_Category> = _Category;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __bit_const_reference<_Cp> {
pub __seg_: root::std::__bit_const_reference___storage_pointer<_Cp>,
pub __mask_: root::std::__bit_const_reference___storage_type<_Cp>,
#[derive(Debug)]
pub struct atomic<_Tp> {
pub _M_i: _Tp,
}
pub type __bit_const_reference___storage_type<_Cp> = _Cp;
pub type __bit_const_reference___storage_pointer<_Cp> = _Cp;
}
pub type __darwin_va_list = root::__builtin_va_list;
pub type va_list = root::__darwin_va_list;
pub mod __gnu_cxx {
#[allow(unused_imports)]
use self::super::super::root;
}
pub type va_list = root::__builtin_va_list;
/**
* MozRefCountType is Mozilla's reference count type.
*
@ -15132,63 +15071,63 @@ pub mod root {
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct nsDOMMutationObserver([u8; 0]);
pub const NODE_HAS_LISTENERMANAGER: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_HAS_LISTENERMANAGER;
pub const NODE_HAS_PROPERTIES: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_HAS_PROPERTIES;
pub const NODE_IS_ANONYMOUS_ROOT: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_IS_ANONYMOUS_ROOT;
pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE;
pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_IS_NATIVE_ANONYMOUS_ROOT;
pub const NODE_FORCE_XBL_BINDINGS: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_FORCE_XBL_BINDINGS;
pub const NODE_MAY_BE_IN_BINDING_MNGR: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_MAY_BE_IN_BINDING_MNGR;
pub const NODE_IS_EDITABLE: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_IS_EDITABLE;
pub const NODE_IS_NATIVE_ANONYMOUS: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_IS_NATIVE_ANONYMOUS;
pub const NODE_IS_IN_SHADOW_TREE: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_IS_IN_SHADOW_TREE;
pub const NODE_HAS_EMPTY_SELECTOR: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_HAS_EMPTY_SELECTOR;
pub const NODE_HAS_SLOW_SELECTOR: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_HAS_SLOW_SELECTOR;
pub const NODE_HAS_EDGE_CHILD_SELECTOR: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_HAS_EDGE_CHILD_SELECTOR;
pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS;
pub const NODE_ALL_SELECTOR_FLAGS: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_ALL_SELECTOR_FLAGS;
pub const NODE_NEEDS_FRAME: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_NEEDS_FRAME;
pub const NODE_DESCENDANTS_NEED_FRAMES: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_DESCENDANTS_NEED_FRAMES;
pub const NODE_HAS_ACCESSKEY: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_HAS_ACCESSKEY;
pub const NODE_HAS_DIRECTION_RTL: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_HAS_DIRECTION_RTL;
pub const NODE_HAS_DIRECTION_LTR: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_HAS_DIRECTION_LTR;
pub const NODE_ALL_DIRECTION_FLAGS: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_ALL_DIRECTION_FLAGS;
pub const NODE_CHROME_ONLY_ACCESS: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_CHROME_ONLY_ACCESS;
pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS;
pub const NODE_SHARED_RESTYLE_BIT_1: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_SHARED_RESTYLE_BIT_1;
pub const NODE_SHARED_RESTYLE_BIT_2: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_SHARED_RESTYLE_BIT_2;
pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_SHARED_RESTYLE_BIT_1;
pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: root::_bindgen_ty_28 =
_bindgen_ty_28::NODE_TYPE_SPECIFIC_BITS_OFFSET;
pub const NODE_HAS_LISTENERMANAGER: root::_bindgen_ty_91 =
_bindgen_ty_91::NODE_HAS_LISTENERMANAGER;
pub const NODE_HAS_PROPERTIES: root::_bindgen_ty_91 =
_bindgen_ty_91::NODE_HAS_PROPERTIES;
pub const NODE_IS_ANONYMOUS_ROOT: root::_bindgen_ty_91 =
_bindgen_ty_91::NODE_IS_ANONYMOUS_ROOT;
pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: root::_bindgen_ty_91 =
_bindgen_ty_91::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE;
pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: root::_bindgen_ty_91 =
_bindgen_ty_91::NODE_IS_NATIVE_ANONYMOUS_ROOT;
pub const NODE_FORCE_XBL_BINDINGS: root::_bindgen_ty_91 =
_bindgen_ty_91::NODE_FORCE_XBL_BINDINGS;
pub const NODE_MAY_BE_IN_BINDING_MNGR: root::_bindgen_ty_91 =
_bindgen_ty_91::NODE_MAY_BE_IN_BINDING_MNGR;
pub const NODE_IS_EDITABLE: root::_bindgen_ty_91 =
_bindgen_ty_91::NODE_IS_EDITABLE;
pub const NODE_IS_NATIVE_ANONYMOUS: root::_bindgen_ty_91 =
_bindgen_ty_91::NODE_IS_NATIVE_ANONYMOUS;
pub const NODE_IS_IN_SHADOW_TREE: root::_bindgen_ty_91 =
_bindgen_ty_91::NODE_IS_IN_SHADOW_TREE;
pub const NODE_HAS_EMPTY_SELECTOR: root::_bindgen_ty_91 =
_bindgen_ty_91::NODE_HAS_EMPTY_SELECTOR;
pub const NODE_HAS_SLOW_SELECTOR: root::_bindgen_ty_91 =
_bindgen_ty_91::NODE_HAS_SLOW_SELECTOR;
pub const NODE_HAS_EDGE_CHILD_SELECTOR: root::_bindgen_ty_91 =
_bindgen_ty_91::NODE_HAS_EDGE_CHILD_SELECTOR;
pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: root::_bindgen_ty_91 =
_bindgen_ty_91::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS;
pub const NODE_ALL_SELECTOR_FLAGS: root::_bindgen_ty_91 =
_bindgen_ty_91::NODE_ALL_SELECTOR_FLAGS;
pub const NODE_NEEDS_FRAME: root::_bindgen_ty_91 =
_bindgen_ty_91::NODE_NEEDS_FRAME;
pub const NODE_DESCENDANTS_NEED_FRAMES: root::_bindgen_ty_91 =
_bindgen_ty_91::NODE_DESCENDANTS_NEED_FRAMES;
pub const NODE_HAS_ACCESSKEY: root::_bindgen_ty_91 =
_bindgen_ty_91::NODE_HAS_ACCESSKEY;
pub const NODE_HAS_DIRECTION_RTL: root::_bindgen_ty_91 =
_bindgen_ty_91::NODE_HAS_DIRECTION_RTL;
pub const NODE_HAS_DIRECTION_LTR: root::_bindgen_ty_91 =
_bindgen_ty_91::NODE_HAS_DIRECTION_LTR;
pub const NODE_ALL_DIRECTION_FLAGS: root::_bindgen_ty_91 =
_bindgen_ty_91::NODE_ALL_DIRECTION_FLAGS;
pub const NODE_CHROME_ONLY_ACCESS: root::_bindgen_ty_91 =
_bindgen_ty_91::NODE_CHROME_ONLY_ACCESS;
pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: root::_bindgen_ty_91 =
_bindgen_ty_91::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS;
pub const NODE_SHARED_RESTYLE_BIT_1: root::_bindgen_ty_91 =
_bindgen_ty_91::NODE_SHARED_RESTYLE_BIT_1;
pub const NODE_SHARED_RESTYLE_BIT_2: root::_bindgen_ty_91 =
_bindgen_ty_91::NODE_SHARED_RESTYLE_BIT_2;
pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: root::_bindgen_ty_91 =
_bindgen_ty_91::NODE_SHARED_RESTYLE_BIT_1;
pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: root::_bindgen_ty_91 =
_bindgen_ty_91::NODE_TYPE_SPECIFIC_BITS_OFFSET;
#[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum _bindgen_ty_28 {
pub enum _bindgen_ty_91 {
NODE_HAS_LISTENERMANAGER = 4,
NODE_HAS_PROPERTIES = 8,
NODE_IS_ANONYMOUS_ROOT = 16,
@ -21192,7 +21131,7 @@ pub mod root {
#[repr(C)]
#[derive(Debug)]
pub struct nsStyleDisplay {
pub mBinding: root::RefPtr<root::mozilla::css::URLValue>,
pub mBinding: root::BindingHolder,
pub mDisplay: root::mozilla::StyleDisplay,
pub mOriginalDisplay: root::mozilla::StyleDisplay,
pub mContain: u8,
@ -24153,6 +24092,23 @@ pub mod root {
}
#[repr(C)]
#[derive(Debug)]
pub struct BindingHolder {
pub mPtr: root::RefPtr<root::mozilla::css::URLValue>,
}
#[test]
fn bindgen_test_layout_BindingHolder() {
assert_eq!(::std::mem::size_of::<BindingHolder>() , 8usize , concat !
( "Size of: " , stringify ! ( BindingHolder ) ));
assert_eq! (::std::mem::align_of::<BindingHolder>() , 8usize , concat
! ( "Alignment of " , stringify ! ( BindingHolder ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const BindingHolder ) ) . mPtr as * const _
as usize } , 0usize , concat ! (
"Alignment of field: " , stringify ! ( BindingHolder ) ,
"::" , stringify ! ( mPtr ) ));
}
#[repr(C)]
#[derive(Debug)]
pub struct nsStyleTable {
pub mLayoutStrategy: u8,
pub mSpan: i32,

View file

@ -156,7 +156,7 @@ impl ComputedValues {
#[allow(non_snake_case)]
pub fn has_moz_binding(&self) -> bool {
!self.get_box().gecko.mBinding.mRawPtr.is_null()
!self.get_box().gecko.mBinding.mPtr.mRawPtr.is_null()
}
// FIXME(bholley): Implement this properly.
@ -507,20 +507,13 @@ fn color_to_nscolor_zero_currentcolor(color: Color) -> structs::nscolor {
% endif
</%def>
<%def name="impl_css_url(ident, gecko_ffi_name, need_clone=False, only_resolved=False)">
<%def name="impl_css_url(ident, gecko_ffi_name, need_clone=False)">
#[allow(non_snake_case)]
pub fn set_${ident}(&mut self, v: longhands::${ident}::computed_value::T) {
use gecko_bindings::sugar::refptr::RefPtr;
match v {
Either::First(url) => {
let refptr = unsafe {
% if only_resolved:
// -moz-binding can't handle relative URIs
if !url.has_resolved() {
self.gecko.${gecko_ffi_name}.clear();
return;
}
% endif
let ptr = bindings::Gecko_NewURLValue(url.for_ffi());
if ptr.is_null() {
self.gecko.${gecko_ffi_name}.clear();
@ -1632,7 +1625,7 @@ fn static_assert() {
longhands::scroll_snap_coordinate::computed_value::T(vec)
}
${impl_css_url('_moz_binding', 'mBinding', only_resolved=True)}
${impl_css_url('_moz_binding', 'mBinding.mPtr')}
<%def name="transform_function_arm(name, keyword, items)">
<%

View file

@ -150,11 +150,6 @@ impl SpecifiedUrl {
}
}
/// Check if it has a resolved URI
pub fn has_resolved(&self) -> bool {
self.resolved.is_some()
}
/// Creates an already specified url value from an already resolved URL
/// for insertion in the cascade.
pub fn for_cascade(url: ServoUrl, extra_data: UrlExtraData) -> Self {