mirror of
https://github.com/servo/servo.git
synced 2025-06-21 07:38:59 +01:00
Use array instead of linked list for -moz-border-*-colors
This commit is contained in:
parent
a5282cabe0
commit
18a555eaeb
4 changed files with 176 additions and 102 deletions
|
@ -71,7 +71,6 @@ use gecko_bindings::structs::StyleBasicShapeType;
|
||||||
use gecko_bindings::structs::StyleShapeSource;
|
use gecko_bindings::structs::StyleShapeSource;
|
||||||
use gecko_bindings::structs::StyleTransition;
|
use gecko_bindings::structs::StyleTransition;
|
||||||
use gecko_bindings::structs::gfxFontFeatureValueSet;
|
use gecko_bindings::structs::gfxFontFeatureValueSet;
|
||||||
use gecko_bindings::structs::nsBorderColors;
|
|
||||||
use gecko_bindings::structs::nsCSSCounterStyleRule;
|
use gecko_bindings::structs::nsCSSCounterStyleRule;
|
||||||
use gecko_bindings::structs::nsCSSFontFaceRule;
|
use gecko_bindings::structs::nsCSSFontFaceRule;
|
||||||
use gecko_bindings::structs::nsCSSKeyword;
|
use gecko_bindings::structs::nsCSSKeyword;
|
||||||
|
@ -876,22 +875,10 @@ extern "C" {
|
||||||
extern "C" {
|
extern "C" {
|
||||||
pub fn Gecko_EnsureMozBorderColors(aBorder: *mut nsStyleBorder);
|
pub fn Gecko_EnsureMozBorderColors(aBorder: *mut nsStyleBorder);
|
||||||
}
|
}
|
||||||
extern "C" {
|
|
||||||
pub fn Gecko_ClearMozBorderColors(aBorder: *mut nsStyleBorder,
|
|
||||||
aSide: Side);
|
|
||||||
}
|
|
||||||
extern "C" {
|
|
||||||
pub fn Gecko_AppendMozBorderColors(aBorder: *mut nsStyleBorder,
|
|
||||||
aSide: Side, aColor: nscolor);
|
|
||||||
}
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
pub fn Gecko_CopyMozBorderColors(aDest: *mut nsStyleBorder,
|
pub fn Gecko_CopyMozBorderColors(aDest: *mut nsStyleBorder,
|
||||||
aSrc: *const nsStyleBorder, aSide: Side);
|
aSrc: *const nsStyleBorder, aSide: Side);
|
||||||
}
|
}
|
||||||
extern "C" {
|
|
||||||
pub fn Gecko_GetMozBorderColors(aBorder: *const nsStyleBorder,
|
|
||||||
aSide: Side) -> *const nsBorderColors;
|
|
||||||
}
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
pub fn Gecko_FontFamilyList_Clear(aList: *mut FontFamilyList);
|
pub fn Gecko_FontFamilyList_Clear(aList: *mut FontFamilyList);
|
||||||
}
|
}
|
||||||
|
|
|
@ -14292,7 +14292,7 @@ pub mod root {
|
||||||
#[repr(C)]
|
#[repr(C)]
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct nsStyleBorder {
|
pub struct nsStyleBorder {
|
||||||
pub mBorderColors: *mut *mut root::nsBorderColors,
|
pub mBorderColors: root::mozilla::UniquePtr<root::nsBorderColors>,
|
||||||
pub mBorderRadius: root::nsStyleCorners,
|
pub mBorderRadius: root::nsStyleCorners,
|
||||||
pub mBorderImageSource: root::nsStyleImage,
|
pub mBorderImageSource: root::nsStyleImage,
|
||||||
pub mBorderImageSlice: root::nsStyleSides,
|
pub mBorderImageSlice: root::nsStyleSides,
|
||||||
|
@ -30552,29 +30552,6 @@ pub mod root {
|
||||||
}
|
}
|
||||||
#[repr(C)]
|
#[repr(C)]
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct nsBorderColors {
|
|
||||||
pub mNext: *mut root::nsBorderColors,
|
|
||||||
pub mColor: root::nscolor,
|
|
||||||
}
|
|
||||||
#[test]
|
|
||||||
fn bindgen_test_layout_nsBorderColors() {
|
|
||||||
assert_eq!(::std::mem::size_of::<nsBorderColors>() , 16usize , concat
|
|
||||||
! ( "Size of: " , stringify ! ( nsBorderColors ) ));
|
|
||||||
assert_eq! (::std::mem::align_of::<nsBorderColors>() , 8usize , concat
|
|
||||||
! ( "Alignment of " , stringify ! ( nsBorderColors ) ));
|
|
||||||
assert_eq! (unsafe {
|
|
||||||
& ( * ( 0 as * const nsBorderColors ) ) . mNext as * const
|
|
||||||
_ as usize } , 0usize , concat ! (
|
|
||||||
"Alignment of field: " , stringify ! ( nsBorderColors ) ,
|
|
||||||
"::" , stringify ! ( mNext ) ));
|
|
||||||
assert_eq! (unsafe {
|
|
||||||
& ( * ( 0 as * const nsBorderColors ) ) . mColor as *
|
|
||||||
const _ as usize } , 8usize , concat ! (
|
|
||||||
"Alignment of field: " , stringify ! ( nsBorderColors ) ,
|
|
||||||
"::" , stringify ! ( mColor ) ));
|
|
||||||
}
|
|
||||||
#[repr(C)]
|
|
||||||
#[derive(Debug)]
|
|
||||||
pub struct nsCSSShadowItem {
|
pub struct nsCSSShadowItem {
|
||||||
pub mXOffset: root::nscoord,
|
pub mXOffset: root::nscoord,
|
||||||
pub mYOffset: root::nscoord,
|
pub mYOffset: root::nscoord,
|
||||||
|
@ -30659,6 +30636,23 @@ pub mod root {
|
||||||
"Alignment of field: " , stringify ! ( nsCSSShadowArray )
|
"Alignment of field: " , stringify ! ( nsCSSShadowArray )
|
||||||
, "::" , stringify ! ( mArray ) ));
|
, "::" , stringify ! ( mArray ) ));
|
||||||
}
|
}
|
||||||
|
#[repr(C)]
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub struct nsBorderColors {
|
||||||
|
pub mColors: [root::nsTArray<::std::os::raw::c_uint>; 4usize],
|
||||||
|
}
|
||||||
|
#[test]
|
||||||
|
fn bindgen_test_layout_nsBorderColors() {
|
||||||
|
assert_eq!(::std::mem::size_of::<nsBorderColors>() , 32usize , concat
|
||||||
|
! ( "Size of: " , stringify ! ( nsBorderColors ) ));
|
||||||
|
assert_eq! (::std::mem::align_of::<nsBorderColors>() , 8usize , concat
|
||||||
|
! ( "Alignment of " , stringify ! ( nsBorderColors ) ));
|
||||||
|
assert_eq! (unsafe {
|
||||||
|
& ( * ( 0 as * const nsBorderColors ) ) . mColors as *
|
||||||
|
const _ as usize } , 0usize , concat ! (
|
||||||
|
"Alignment of field: " , stringify ! ( nsBorderColors ) ,
|
||||||
|
"::" , stringify ! ( mColors ) ));
|
||||||
|
}
|
||||||
/// An object that allows sharing of arrays that store 'quotes' property
|
/// An object that allows sharing of arrays that store 'quotes' property
|
||||||
/// values. This is particularly important for inheritance, where we want
|
/// values. This is particularly important for inheritance, where we want
|
||||||
/// to share the same 'quotes' value with a parent style context.
|
/// to share the same 'quotes' value with a parent style context.
|
||||||
|
@ -33527,6 +33521,28 @@ pub mod root {
|
||||||
root::RefPtr<root::nsCSSValueSharedList> ) ));
|
root::RefPtr<root::nsCSSValueSharedList> ) ));
|
||||||
}
|
}
|
||||||
#[test]
|
#[test]
|
||||||
|
fn __bindgen_test_layout_UniquePtr_open0_nsBorderColors_DefaultDelete_open1_nsBorderColors_close1_close0_instantiation() {
|
||||||
|
assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsBorderColors>>()
|
||||||
|
, 8usize , concat ! (
|
||||||
|
"Size of template specialization: " , stringify ! (
|
||||||
|
root::mozilla::UniquePtr<root::nsBorderColors> ) ));
|
||||||
|
assert_eq!(::std::mem::align_of::<root::mozilla::UniquePtr<root::nsBorderColors>>()
|
||||||
|
, 8usize , concat ! (
|
||||||
|
"Alignment of template specialization: " , stringify ! (
|
||||||
|
root::mozilla::UniquePtr<root::nsBorderColors> ) ));
|
||||||
|
}
|
||||||
|
#[test]
|
||||||
|
fn __bindgen_test_layout_DefaultDelete_open0_nsBorderColors_close0_instantiation() {
|
||||||
|
assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() ,
|
||||||
|
1usize , concat ! (
|
||||||
|
"Size of template specialization: " , stringify ! (
|
||||||
|
root::mozilla::DefaultDelete ) ));
|
||||||
|
assert_eq!(::std::mem::align_of::<root::mozilla::DefaultDelete>() ,
|
||||||
|
1usize , concat ! (
|
||||||
|
"Alignment of template specialization: " , stringify ! (
|
||||||
|
root::mozilla::DefaultDelete ) ));
|
||||||
|
}
|
||||||
|
#[test]
|
||||||
fn __bindgen_test_layout_nsTArray_open0_nsStyleFilter_close0_instantiation() {
|
fn __bindgen_test_layout_nsTArray_open0_nsStyleFilter_close0_instantiation() {
|
||||||
assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsStyleFilter>>()
|
assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsStyleFilter>>()
|
||||||
, 8usize , concat ! (
|
, 8usize , concat ! (
|
||||||
|
@ -33582,6 +33598,17 @@ pub mod root {
|
||||||
root::nsTArray<::nsstring::nsStringRepr> ) ));
|
root::nsTArray<::nsstring::nsStringRepr> ) ));
|
||||||
}
|
}
|
||||||
#[test]
|
#[test]
|
||||||
|
fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_2() {
|
||||||
|
assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize ,
|
||||||
|
concat ! (
|
||||||
|
"Size of template specialization: " , stringify ! (
|
||||||
|
::nsstring::nsStringRepr ) ));
|
||||||
|
assert_eq!(::std::mem::align_of::<::nsstring::nsStringRepr>() , 8usize ,
|
||||||
|
concat ! (
|
||||||
|
"Alignment of template specialization: " , stringify ! (
|
||||||
|
::nsstring::nsStringRepr ) ));
|
||||||
|
}
|
||||||
|
#[test]
|
||||||
fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_202536_close0_instantiation() {
|
fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_202536_close0_instantiation() {
|
||||||
assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::StyleSheet>>()
|
assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::StyleSheet>>()
|
||||||
, 8usize , concat ! (
|
, 8usize , concat ! (
|
||||||
|
@ -34814,6 +34841,17 @@ pub mod root {
|
||||||
root::nsTArray<::nsstring::nsStringRepr> ) ));
|
root::nsTArray<::nsstring::nsStringRepr> ) ));
|
||||||
}
|
}
|
||||||
#[test]
|
#[test]
|
||||||
|
fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_3() {
|
||||||
|
assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize ,
|
||||||
|
concat ! (
|
||||||
|
"Size of template specialization: " , stringify ! (
|
||||||
|
::nsstring::nsStringRepr ) ));
|
||||||
|
assert_eq!(::std::mem::align_of::<::nsstring::nsStringRepr>() , 8usize ,
|
||||||
|
concat ! (
|
||||||
|
"Alignment of template specialization: " , stringify ! (
|
||||||
|
::nsstring::nsStringRepr ) ));
|
||||||
|
}
|
||||||
|
#[test]
|
||||||
fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_213307_close0_instantiation() {
|
fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_213307_close0_instantiation() {
|
||||||
assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::StyleSheet>>()
|
assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::StyleSheet>>()
|
||||||
, 8usize , concat ! (
|
, 8usize , concat ! (
|
||||||
|
@ -36712,6 +36750,17 @@ pub mod root {
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
#[test]
|
#[test]
|
||||||
|
fn __bindgen_test_layout_nsTArray_open0_unsigned_int_close0_instantiation_5() {
|
||||||
|
assert_eq!(::std::mem::size_of::<root::nsTArray<::std::os::raw::c_uint>>()
|
||||||
|
, 8usize , concat ! (
|
||||||
|
"Size of template specialization: " , stringify ! (
|
||||||
|
root::nsTArray<::std::os::raw::c_uint> ) ));
|
||||||
|
assert_eq!(::std::mem::align_of::<root::nsTArray<::std::os::raw::c_uint>>()
|
||||||
|
, 8usize , concat ! (
|
||||||
|
"Alignment of template specialization: " , stringify ! (
|
||||||
|
root::nsTArray<::std::os::raw::c_uint> ) ));
|
||||||
|
}
|
||||||
|
#[test]
|
||||||
fn __bindgen_test_layout_nsTArray_open0_pair_open1_nsString_nsString_close1_close0_instantiation() {
|
fn __bindgen_test_layout_nsTArray_open0_pair_open1_nsString_nsString_close1_close0_instantiation() {
|
||||||
assert_eq!(::std::mem::size_of::<root::nsTArray<root::std::pair<::nsstring::nsStringRepr,
|
assert_eq!(::std::mem::size_of::<root::nsTArray<root::std::pair<::nsstring::nsStringRepr,
|
||||||
::nsstring::nsStringRepr>>>()
|
::nsstring::nsStringRepr>>>()
|
||||||
|
|
|
@ -14139,7 +14139,7 @@ pub mod root {
|
||||||
#[repr(C)]
|
#[repr(C)]
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct nsStyleBorder {
|
pub struct nsStyleBorder {
|
||||||
pub mBorderColors: *mut *mut root::nsBorderColors,
|
pub mBorderColors: root::mozilla::UniquePtr<root::nsBorderColors>,
|
||||||
pub mBorderRadius: root::nsStyleCorners,
|
pub mBorderRadius: root::nsStyleCorners,
|
||||||
pub mBorderImageSource: root::nsStyleImage,
|
pub mBorderImageSource: root::nsStyleImage,
|
||||||
pub mBorderImageSlice: root::nsStyleSides,
|
pub mBorderImageSlice: root::nsStyleSides,
|
||||||
|
@ -30138,29 +30138,6 @@ pub mod root {
|
||||||
}
|
}
|
||||||
#[repr(C)]
|
#[repr(C)]
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct nsBorderColors {
|
|
||||||
pub mNext: *mut root::nsBorderColors,
|
|
||||||
pub mColor: root::nscolor,
|
|
||||||
}
|
|
||||||
#[test]
|
|
||||||
fn bindgen_test_layout_nsBorderColors() {
|
|
||||||
assert_eq!(::std::mem::size_of::<nsBorderColors>() , 16usize , concat
|
|
||||||
! ( "Size of: " , stringify ! ( nsBorderColors ) ));
|
|
||||||
assert_eq! (::std::mem::align_of::<nsBorderColors>() , 8usize , concat
|
|
||||||
! ( "Alignment of " , stringify ! ( nsBorderColors ) ));
|
|
||||||
assert_eq! (unsafe {
|
|
||||||
& ( * ( 0 as * const nsBorderColors ) ) . mNext as * const
|
|
||||||
_ as usize } , 0usize , concat ! (
|
|
||||||
"Alignment of field: " , stringify ! ( nsBorderColors ) ,
|
|
||||||
"::" , stringify ! ( mNext ) ));
|
|
||||||
assert_eq! (unsafe {
|
|
||||||
& ( * ( 0 as * const nsBorderColors ) ) . mColor as *
|
|
||||||
const _ as usize } , 8usize , concat ! (
|
|
||||||
"Alignment of field: " , stringify ! ( nsBorderColors ) ,
|
|
||||||
"::" , stringify ! ( mColor ) ));
|
|
||||||
}
|
|
||||||
#[repr(C)]
|
|
||||||
#[derive(Debug)]
|
|
||||||
pub struct nsCSSShadowItem {
|
pub struct nsCSSShadowItem {
|
||||||
pub mXOffset: root::nscoord,
|
pub mXOffset: root::nscoord,
|
||||||
pub mYOffset: root::nscoord,
|
pub mYOffset: root::nscoord,
|
||||||
|
@ -30245,6 +30222,23 @@ pub mod root {
|
||||||
"Alignment of field: " , stringify ! ( nsCSSShadowArray )
|
"Alignment of field: " , stringify ! ( nsCSSShadowArray )
|
||||||
, "::" , stringify ! ( mArray ) ));
|
, "::" , stringify ! ( mArray ) ));
|
||||||
}
|
}
|
||||||
|
#[repr(C)]
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub struct nsBorderColors {
|
||||||
|
pub mColors: [root::nsTArray<::std::os::raw::c_uint>; 4usize],
|
||||||
|
}
|
||||||
|
#[test]
|
||||||
|
fn bindgen_test_layout_nsBorderColors() {
|
||||||
|
assert_eq!(::std::mem::size_of::<nsBorderColors>() , 32usize , concat
|
||||||
|
! ( "Size of: " , stringify ! ( nsBorderColors ) ));
|
||||||
|
assert_eq! (::std::mem::align_of::<nsBorderColors>() , 8usize , concat
|
||||||
|
! ( "Alignment of " , stringify ! ( nsBorderColors ) ));
|
||||||
|
assert_eq! (unsafe {
|
||||||
|
& ( * ( 0 as * const nsBorderColors ) ) . mColors as *
|
||||||
|
const _ as usize } , 0usize , concat ! (
|
||||||
|
"Alignment of field: " , stringify ! ( nsBorderColors ) ,
|
||||||
|
"::" , stringify ! ( mColors ) ));
|
||||||
|
}
|
||||||
/// An object that allows sharing of arrays that store 'quotes' property
|
/// An object that allows sharing of arrays that store 'quotes' property
|
||||||
/// values. This is particularly important for inheritance, where we want
|
/// values. This is particularly important for inheritance, where we want
|
||||||
/// to share the same 'quotes' value with a parent style context.
|
/// to share the same 'quotes' value with a parent style context.
|
||||||
|
@ -33113,6 +33107,28 @@ pub mod root {
|
||||||
root::RefPtr<root::nsCSSValueSharedList> ) ));
|
root::RefPtr<root::nsCSSValueSharedList> ) ));
|
||||||
}
|
}
|
||||||
#[test]
|
#[test]
|
||||||
|
fn __bindgen_test_layout_UniquePtr_open0_nsBorderColors_DefaultDelete_open1_nsBorderColors_close1_close0_instantiation() {
|
||||||
|
assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsBorderColors>>()
|
||||||
|
, 8usize , concat ! (
|
||||||
|
"Size of template specialization: " , stringify ! (
|
||||||
|
root::mozilla::UniquePtr<root::nsBorderColors> ) ));
|
||||||
|
assert_eq!(::std::mem::align_of::<root::mozilla::UniquePtr<root::nsBorderColors>>()
|
||||||
|
, 8usize , concat ! (
|
||||||
|
"Alignment of template specialization: " , stringify ! (
|
||||||
|
root::mozilla::UniquePtr<root::nsBorderColors> ) ));
|
||||||
|
}
|
||||||
|
#[test]
|
||||||
|
fn __bindgen_test_layout_DefaultDelete_open0_nsBorderColors_close0_instantiation() {
|
||||||
|
assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() ,
|
||||||
|
1usize , concat ! (
|
||||||
|
"Size of template specialization: " , stringify ! (
|
||||||
|
root::mozilla::DefaultDelete ) ));
|
||||||
|
assert_eq!(::std::mem::align_of::<root::mozilla::DefaultDelete>() ,
|
||||||
|
1usize , concat ! (
|
||||||
|
"Alignment of template specialization: " , stringify ! (
|
||||||
|
root::mozilla::DefaultDelete ) ));
|
||||||
|
}
|
||||||
|
#[test]
|
||||||
fn __bindgen_test_layout_nsTArray_open0_nsStyleFilter_close0_instantiation() {
|
fn __bindgen_test_layout_nsTArray_open0_nsStyleFilter_close0_instantiation() {
|
||||||
assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsStyleFilter>>()
|
assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsStyleFilter>>()
|
||||||
, 8usize , concat ! (
|
, 8usize , concat ! (
|
||||||
|
@ -33168,6 +33184,17 @@ pub mod root {
|
||||||
root::nsTArray<::nsstring::nsStringRepr> ) ));
|
root::nsTArray<::nsstring::nsStringRepr> ) ));
|
||||||
}
|
}
|
||||||
#[test]
|
#[test]
|
||||||
|
fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_2() {
|
||||||
|
assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize ,
|
||||||
|
concat ! (
|
||||||
|
"Size of template specialization: " , stringify ! (
|
||||||
|
::nsstring::nsStringRepr ) ));
|
||||||
|
assert_eq!(::std::mem::align_of::<::nsstring::nsStringRepr>() , 8usize ,
|
||||||
|
concat ! (
|
||||||
|
"Alignment of template specialization: " , stringify ! (
|
||||||
|
::nsstring::nsStringRepr ) ));
|
||||||
|
}
|
||||||
|
#[test]
|
||||||
fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_200130_close0_instantiation() {
|
fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_200130_close0_instantiation() {
|
||||||
assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::StyleSheet>>()
|
assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::StyleSheet>>()
|
||||||
, 8usize , concat ! (
|
, 8usize , concat ! (
|
||||||
|
@ -34400,6 +34427,17 @@ pub mod root {
|
||||||
root::nsTArray<::nsstring::nsStringRepr> ) ));
|
root::nsTArray<::nsstring::nsStringRepr> ) ));
|
||||||
}
|
}
|
||||||
#[test]
|
#[test]
|
||||||
|
fn __bindgen_test_layout_nsTString_open0_char16_t_close0_instantiation_3() {
|
||||||
|
assert_eq!(::std::mem::size_of::<::nsstring::nsStringRepr>() , 16usize ,
|
||||||
|
concat ! (
|
||||||
|
"Size of template specialization: " , stringify ! (
|
||||||
|
::nsstring::nsStringRepr ) ));
|
||||||
|
assert_eq!(::std::mem::align_of::<::nsstring::nsStringRepr>() , 8usize ,
|
||||||
|
concat ! (
|
||||||
|
"Alignment of template specialization: " , stringify ! (
|
||||||
|
::nsstring::nsStringRepr ) ));
|
||||||
|
}
|
||||||
|
#[test]
|
||||||
fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_210857_close0_instantiation() {
|
fn __bindgen_test_layout_nsTArray_open0__bindgen_ty_id_210857_close0_instantiation() {
|
||||||
assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::StyleSheet>>()
|
assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::StyleSheet>>()
|
||||||
, 8usize , concat ! (
|
, 8usize , concat ! (
|
||||||
|
@ -36285,6 +36323,17 @@ pub mod root {
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
#[test]
|
#[test]
|
||||||
|
fn __bindgen_test_layout_nsTArray_open0_unsigned_int_close0_instantiation_5() {
|
||||||
|
assert_eq!(::std::mem::size_of::<root::nsTArray<::std::os::raw::c_uint>>()
|
||||||
|
, 8usize , concat ! (
|
||||||
|
"Size of template specialization: " , stringify ! (
|
||||||
|
root::nsTArray<::std::os::raw::c_uint> ) ));
|
||||||
|
assert_eq!(::std::mem::align_of::<root::nsTArray<::std::os::raw::c_uint>>()
|
||||||
|
, 8usize , concat ! (
|
||||||
|
"Alignment of template specialization: " , stringify ! (
|
||||||
|
root::nsTArray<::std::os::raw::c_uint> ) ));
|
||||||
|
}
|
||||||
|
#[test]
|
||||||
fn __bindgen_test_layout_nsTArray_open0_pair_open1_nsString_nsString_close1_close0_instantiation() {
|
fn __bindgen_test_layout_nsTArray_open0_pair_open1_nsString_nsString_close1_close0_instantiation() {
|
||||||
assert_eq!(::std::mem::size_of::<root::nsTArray<root::std::pair<::nsstring::nsStringRepr,
|
assert_eq!(::std::mem::size_of::<root::nsTArray<root::std::pair<::nsstring::nsStringRepr,
|
||||||
::nsstring::nsStringRepr>>>()
|
::nsstring::nsStringRepr>>>()
|
||||||
|
|
|
@ -1272,6 +1272,34 @@ fn static_assert() {
|
||||||
border-image-repeat border-image-width border-image-slice
|
border-image-repeat border-image-width border-image-slice
|
||||||
${skip_moz_border_color_longhands}">
|
${skip_moz_border_color_longhands}">
|
||||||
|
|
||||||
|
fn set_moz_border_colors(&mut self, side: structs::Side, v: Option<Vec<::cssparser::RGBA>>) {
|
||||||
|
match v {
|
||||||
|
None => {
|
||||||
|
let ptr = self.gecko.mBorderColors.mPtr;
|
||||||
|
if let Some(colors) = unsafe { ptr.as_mut() } {
|
||||||
|
unsafe { colors.mColors[side as usize].clear() };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Some(ref colors) => {
|
||||||
|
unsafe { bindings::Gecko_EnsureMozBorderColors(&mut self.gecko) };
|
||||||
|
let border_colors = unsafe { self.gecko.mBorderColors.mPtr.as_mut().unwrap() };
|
||||||
|
let dest_colors = &mut border_colors.mColors[side as usize];
|
||||||
|
unsafe { dest_colors.set_len_pod(colors.len() as u32) };
|
||||||
|
for (dst, src) in dest_colors.iter_mut().zip(colors.into_iter()) {
|
||||||
|
*dst = convert_rgba_to_nscolor(src);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn clone_moz_border_colors(&self, side: structs::Side) -> Option<Vec<::cssparser::RGBA>> {
|
||||||
|
unsafe { self.gecko.mBorderColors.mPtr.as_ref() }.map(|colors| {
|
||||||
|
colors.mColors[side as usize].iter()
|
||||||
|
.map(|color| convert_nscolor_to_rgba(*color))
|
||||||
|
.collect()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
% for side in SIDES:
|
% for side in SIDES:
|
||||||
<% impl_keyword("border_%s_style" % side.ident,
|
<% impl_keyword("border_%s_style" % side.ident,
|
||||||
"mBorderStyle[%s]" % side.index,
|
"mBorderStyle[%s]" % side.index,
|
||||||
|
@ -1322,29 +1350,7 @@ fn static_assert() {
|
||||||
#[allow(non_snake_case)]
|
#[allow(non_snake_case)]
|
||||||
pub fn set__moz_border_${side.ident}_colors(&mut self,
|
pub fn set__moz_border_${side.ident}_colors(&mut self,
|
||||||
v: longhands::_moz_border_${side.ident}_colors::computed_value::T) {
|
v: longhands::_moz_border_${side.ident}_colors::computed_value::T) {
|
||||||
match v.0 {
|
self.set_moz_border_colors(structs::Side::eSide${to_camel_case(side.ident)}, v.0);
|
||||||
None => {
|
|
||||||
unsafe {
|
|
||||||
bindings::Gecko_ClearMozBorderColors(&mut self.gecko,
|
|
||||||
structs::Side::eSide${to_camel_case(side.ident)});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
Some(ref colors) => {
|
|
||||||
unsafe {
|
|
||||||
bindings::Gecko_EnsureMozBorderColors(&mut self.gecko);
|
|
||||||
bindings::Gecko_ClearMozBorderColors(&mut self.gecko,
|
|
||||||
structs::Side::eSide${to_camel_case(side.ident)});
|
|
||||||
}
|
|
||||||
for color in colors {
|
|
||||||
let c = convert_rgba_to_nscolor(color);
|
|
||||||
unsafe {
|
|
||||||
bindings::Gecko_AppendMozBorderColors(&mut self.gecko,
|
|
||||||
structs::Side::eSide${to_camel_case(side.ident)},
|
|
||||||
c);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(non_snake_case)]
|
#[allow(non_snake_case)]
|
||||||
|
@ -1364,24 +1370,7 @@ fn static_assert() {
|
||||||
pub fn clone__moz_border_${side.ident}_colors(&self)
|
pub fn clone__moz_border_${side.ident}_colors(&self)
|
||||||
-> longhands::_moz_border_${side.ident}_colors::computed_value::T {
|
-> longhands::_moz_border_${side.ident}_colors::computed_value::T {
|
||||||
use self::longhands::_moz_border_${side.ident}_colors::computed_value::T;
|
use self::longhands::_moz_border_${side.ident}_colors::computed_value::T;
|
||||||
|
T(self.clone_moz_border_colors(structs::Side::eSide${to_camel_case(side.ident)}))
|
||||||
let mut gecko_colors =
|
|
||||||
unsafe { bindings::Gecko_GetMozBorderColors(&self.gecko,
|
|
||||||
structs::Side::eSide${to_camel_case(side.ident)}) };
|
|
||||||
|
|
||||||
if gecko_colors.is_null() {
|
|
||||||
return T(None);
|
|
||||||
}
|
|
||||||
|
|
||||||
let mut colors = Vec::new();
|
|
||||||
loop {
|
|
||||||
unsafe {
|
|
||||||
colors.push(convert_nscolor_to_rgba((*gecko_colors).mColor));
|
|
||||||
if (*gecko_colors).mNext.is_null() { break; }
|
|
||||||
gecko_colors = (*gecko_colors).mNext;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
T(Some(colors))
|
|
||||||
}
|
}
|
||||||
% endfor
|
% endfor
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue