servo: Merge #11827 - Generate geckolib structs with -no-bitfield-methods (from servo:geckolib-no-const-fn); r=emilio
authorSimon Sapin <simon.sapin@exyr.org>
Wed, 22 Jun 2016 17:06:30 -0500
changeset 339114 2ce1b591d94635ba6fdcefa604066dde60d0493c
parent 339113 7b98ed8ad6fe71e2d2c77d193a2d5f362bcde447
child 339115 52d6a030416ce2a0dcf4a174179bd592c6aaba75
push id31307
push usergszorc@mozilla.com
push dateSat, 04 Feb 2017 00:59:06 +0000
treeherdermozilla-central@94079d43835f [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersemilio
servo: Merge #11827 - Generate geckolib structs with -no-bitfield-methods (from servo:geckolib-no-const-fn); r=emilio <!-- Please describe your changes on the following line: --> This makes rust-bindgen not generate a bunch of methods that were not used, including `const fn` ones. This helps with #11815 since `const fn` is unstable. (Note that running `regen_style_structs.sh` without changing it made a bunch of unrelated changes to `structs_*.rs`, probably because I had a different Gecko version. I first made a commit of that, then added `-no-bitfield-methods`, regenerated, made another commit, then removed the first commit with `git rebase -i master@{u}`.) r? @emilio --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix part of #11815 (github issue number if applicable). <!-- Either: --> - [ ] There are tests for these changes OR - [x] These changes do not require new tests because they’re only removing dead code. <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> Source-Repo: https://github.com/servo/servo Source-Revision: 053c2aee0aff738bccde5df1ccdfdfceddaa2fa2
servo/ports/geckolib/gecko_bindings/lib.rs
servo/ports/geckolib/gecko_bindings/structs_debug.rs
servo/ports/geckolib/gecko_bindings/structs_release.rs
servo/ports/geckolib/gecko_bindings/tools/regen_style_structs.sh
--- a/servo/ports/geckolib/gecko_bindings/lib.rs
+++ b/servo/ports/geckolib/gecko_bindings/lib.rs
@@ -1,14 +1,12 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-#![feature(const_fn)]
-
 extern crate heapsize;
 
 #[allow(dead_code, non_camel_case_types)]
 pub mod bindings;
 pub mod ptr;
 #[cfg(debug_assertions)]
 #[allow(dead_code, non_camel_case_types, non_snake_case, non_upper_case_globals)]
 pub mod structs {
--- a/servo/ports/geckolib/gecko_bindings/structs_debug.rs
+++ b/servo/ports/geckolib/gecko_bindings/structs_debug.rs
@@ -2642,29 +2642,16 @@ impl ::std::clone::Clone for nsTArrayInf
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsTArrayHeader {
     pub mLength: u32,
     pub _bitfield_1: u32,
 }
-impl nsTArrayHeader {
-    pub fn set_mCapacity(&mut self, val: u32) {
-        self._bitfield_1 &= !(((1 << (31u32 as u32)) - 1) << 0usize);
-        self._bitfield_1 |= (val as u32) << 0usize;
-    }
-    pub fn set_mIsAutoArray(&mut self, val: bool) {
-        self._bitfield_1 &= !(((1 << (1u32 as u32)) - 1) << 31usize);
-        self._bitfield_1 |= (val as u32) << 31usize;
-    }
-    pub const fn new_bitfield_1(mCapacity: u32, mIsAutoArray: bool) -> u32 {
-        0 | ((mCapacity as u32) << 0u32) | ((mIsAutoArray as u32) << 31u32)
-    }
-}
 impl ::std::clone::Clone for nsTArrayHeader {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsTArrayHeader() {
     assert_eq!(::std::mem::size_of::<nsTArrayHeader>() , 8usize);
     assert_eq!(::std::mem::align_of::<nsTArrayHeader>() , 4usize);
 }
@@ -4209,101 +4196,17 @@ pub struct nsCSSValue_nsCSSValue_h_unnam
     pub mListDependent: __BindgenUnionField<*mut nsCSSValueList>,
     pub mSharedList: __BindgenUnionField<*mut nsCSSValueSharedList>,
     pub mPairList: __BindgenUnionField<*mut nsCSSValuePairList_heap>,
     pub mPairListDependent: __BindgenUnionField<*mut nsCSSValuePairList>,
     pub mFloatColor: __BindgenUnionField<*mut nsCSSValueFloatColor>,
     pub mFontFamilyList: __BindgenUnionField<*mut FontFamilyListRefCnt>,
     pub _bindgen_data_: u64,
 }
-impl nsCSSValue_nsCSSValue_h_unnamed_9 {
-    pub unsafe fn mInt(&mut self) -> *mut i32 {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mFloat(&mut self) -> *mut f32 {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mString(&mut self) -> *mut *mut nsStringBuffer {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mColor(&mut self) -> *mut nscolor {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mArray(&mut self) -> *mut *mut Array {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mURL(&mut self) -> *mut *mut URLValue {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mImage(&mut self) -> *mut *mut ImageValue {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mGridTemplateAreas(&mut self)
-     -> *mut *mut GridTemplateAreasValue {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mGradient(&mut self) -> *mut *mut nsCSSValueGradient {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mTokenStream(&mut self) -> *mut *mut nsCSSValueTokenStream {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mPair(&mut self) -> *mut *mut nsCSSValuePair_heap {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mRect(&mut self) -> *mut *mut nsCSSRect_heap {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mTriplet(&mut self) -> *mut *mut nsCSSValueTriplet_heap {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mList(&mut self) -> *mut *mut nsCSSValueList_heap {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mListDependent(&mut self) -> *mut *mut nsCSSValueList {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mSharedList(&mut self) -> *mut *mut nsCSSValueSharedList {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mPairList(&mut self) -> *mut *mut nsCSSValuePairList_heap {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mPairListDependent(&mut self)
-     -> *mut *mut nsCSSValuePairList {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mFloatColor(&mut self) -> *mut *mut nsCSSValueFloatColor {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mFontFamilyList(&mut self)
-     -> *mut *mut FontFamilyListRefCnt {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-}
+impl nsCSSValue_nsCSSValue_h_unnamed_9 { }
 impl ::std::clone::Clone for nsCSSValue_nsCSSValue_h_unnamed_9 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsCSSValue_nsCSSValue_h_unnamed_9() {
     assert_eq!(::std::mem::size_of::<nsCSSValue_nsCSSValue_h_unnamed_9>() ,
                8usize);
     assert_eq!(::std::mem::align_of::<nsCSSValue_nsCSSValue_h_unnamed_9>() ,
@@ -4664,29 +4567,16 @@ pub struct nsIAtom {
    * nsStringBuffer::FromData() calls above are valid.
    */
     pub mString: *mut ::std::os::raw::c_ushort,
 }
 #[repr(C)]
 pub struct _vftable_nsIAtom {
     pub _base: _vftable_nsISupports,
 }
-impl nsIAtom {
-    pub fn set_mLength(&mut self, val: u32) {
-        self._bitfield_1 &= !(((1 << (31u32 as u32)) - 1) << 0usize);
-        self._bitfield_1 |= (val as u32) << 0usize;
-    }
-    pub fn set_mIsStatic(&mut self, val: bool) {
-        self._bitfield_1 &= !(((1 << (1u32 as u32)) - 1) << 31usize);
-        self._bitfield_1 |= (val as u32) << 31usize;
-    }
-    pub const fn new_bitfield_1(mLength: u32, mIsStatic: bool) -> u32 {
-        0 | ((mLength as u32) << 0u32) | ((mIsStatic as u32) << 31u32)
-    }
-}
 impl ::std::clone::Clone for nsIAtom {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsIAtom() {
     assert_eq!(::std::mem::size_of::<nsIAtom>() , 24usize);
     assert_eq!(::std::mem::align_of::<nsIAtom>() , 8usize);
 }
@@ -4887,30 +4777,17 @@ pub enum nsStyleUnit {
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsStyleCoord_h_unnamed_15 {
     pub mInt: __BindgenUnionField<i32>,
     pub mFloat: __BindgenUnionField<f32>,
     pub mPointer: __BindgenUnionField<*mut ::std::os::raw::c_void>,
     pub _bindgen_data_: u64,
 }
-impl nsStyleCoord_h_unnamed_15 {
-    pub unsafe fn mInt(&mut self) -> *mut i32 {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mFloat(&mut self) -> *mut f32 {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mPointer(&mut self) -> *mut *mut ::std::os::raw::c_void {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-}
+impl nsStyleCoord_h_unnamed_15 { }
 impl ::std::clone::Clone for nsStyleCoord_h_unnamed_15 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsStyleCoord_h_unnamed_15() {
     assert_eq!(::std::mem::size_of::<nsStyleCoord_h_unnamed_15>() , 8usize);
     assert_eq!(::std::mem::align_of::<nsStyleCoord_h_unnamed_15>() , 8usize);
 }
@@ -5115,31 +4992,17 @@ pub struct nsStyleImage {
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsStyleImage_nsStyleStruct_h_unnamed_18 {
     pub mImage: __BindgenUnionField<*mut imgRequestProxy>,
     pub mGradient: __BindgenUnionField<*mut nsStyleGradient>,
     pub mElementId: __BindgenUnionField<*mut ::std::os::raw::c_ushort>,
     pub _bindgen_data_: u64,
 }
-impl nsStyleImage_nsStyleStruct_h_unnamed_18 {
-    pub unsafe fn mImage(&mut self) -> *mut *mut imgRequestProxy {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mGradient(&mut self) -> *mut *mut nsStyleGradient {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mElementId(&mut self)
-     -> *mut *mut ::std::os::raw::c_ushort {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-}
+impl nsStyleImage_nsStyleStruct_h_unnamed_18 { }
 impl ::std::clone::Clone for nsStyleImage_nsStyleStruct_h_unnamed_18 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsStyleImage_nsStyleStruct_h_unnamed_18() {
     assert_eq!(::std::mem::size_of::<nsStyleImage_nsStyleStruct_h_unnamed_18>()
                , 8usize);
     assert_eq!(::std::mem::align_of::<nsStyleImage_nsStyleStruct_h_unnamed_18>()
@@ -5479,29 +5342,16 @@ pub struct nsStyleGridTemplate {
     pub mLineNameLists: nsTArray<nsTArray<nsString>>,
     pub mMinTrackSizingFunctions: nsTArray<nsStyleCoord>,
     pub mMaxTrackSizingFunctions: nsTArray<nsStyleCoord>,
     pub mRepeatAutoLineNameListBefore: nsTArray<nsString>,
     pub mRepeatAutoLineNameListAfter: nsTArray<nsString>,
     pub mRepeatAutoIndex: i16,
     pub _bitfield_1: u8,
 }
-impl nsStyleGridTemplate {
-    pub fn set_mIsAutoFill(&mut self, val: bool) {
-        self._bitfield_1 &= !(((1 << (1u32 as u8)) - 1) << 0usize);
-        self._bitfield_1 |= (val as u8) << 0usize;
-    }
-    pub fn set_mIsSubgrid(&mut self, val: bool) {
-        self._bitfield_1 &= !(((1 << (1u32 as u8)) - 1) << 1usize);
-        self._bitfield_1 |= (val as u8) << 1usize;
-    }
-    pub const fn new_bitfield_1(mIsAutoFill: bool, mIsSubgrid: bool) -> u8 {
-        0 | ((mIsAutoFill as u8) << 0u32) | ((mIsSubgrid as u8) << 1u32)
-    }
-}
 #[test]
 fn bindgen_test_layout_nsStyleGridTemplate() {
     assert_eq!(::std::mem::size_of::<nsStyleGridTemplate>() , 48usize);
     assert_eq!(::std::mem::align_of::<nsStyleGridTemplate>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsStylePosition {
@@ -5611,50 +5461,16 @@ pub struct nsStyleText {
     pub mWordSpacing: nsStyleCoord,
     pub mLetterSpacing: nsStyleCoord,
     pub mLineHeight: nsStyleCoord,
     pub mTextIndent: nsStyleCoord,
     pub mWebkitTextStrokeWidth: nsStyleCoord,
     pub mTextShadow: RefPtr<nsCSSShadowArray>,
     pub mTextEmphasisStyleString: nsString,
 }
-impl nsStyleText {
-    pub fn set_mTextAlignTrue(&mut self, val: bool) {
-        self._bitfield_1 &= !(((1 << (1u32 as u8)) - 1) << 0usize);
-        self._bitfield_1 |= (val as u8) << 0usize;
-    }
-    pub fn set_mTextAlignLastTrue(&mut self, val: bool) {
-        self._bitfield_1 &= !(((1 << (1u32 as u8)) - 1) << 1usize);
-        self._bitfield_1 |= (val as u8) << 1usize;
-    }
-    pub fn set_mTextEmphasisColorForeground(&mut self, val: bool) {
-        self._bitfield_1 &= !(((1 << (1u32 as u8)) - 1) << 2usize);
-        self._bitfield_1 |= (val as u8) << 2usize;
-    }
-    pub fn set_mWebkitTextFillColorForeground(&mut self, val: bool) {
-        self._bitfield_1 &= !(((1 << (1u32 as u8)) - 1) << 3usize);
-        self._bitfield_1 |= (val as u8) << 3usize;
-    }
-    pub fn set_mWebkitTextStrokeColorForeground(&mut self, val: bool) {
-        self._bitfield_1 &= !(((1 << (1u32 as u8)) - 1) << 4usize);
-        self._bitfield_1 |= (val as u8) << 4usize;
-    }
-    pub const fn new_bitfield_1(mTextAlignTrue: bool,
-                                mTextAlignLastTrue: bool,
-                                mTextEmphasisColorForeground: bool,
-                                mWebkitTextFillColorForeground: bool,
-                                mWebkitTextStrokeColorForeground: bool)
-     -> u8 {
-        0 | ((mTextAlignTrue as u8) << 0u32) |
-            ((mTextAlignLastTrue as u8) << 1u32) |
-            ((mTextEmphasisColorForeground as u8) << 2u32) |
-            ((mWebkitTextFillColorForeground as u8) << 3u32) |
-            ((mWebkitTextStrokeColorForeground as u8) << 4u32)
-    }
-}
 #[test]
 fn bindgen_test_layout_nsStyleText() {
     assert_eq!(::std::mem::size_of::<nsStyleText>() , 136usize);
     assert_eq!(::std::mem::align_of::<nsStyleText>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsStyleImageOrientation {
@@ -5730,30 +5546,17 @@ pub enum nsTimingFunction_StepSyntax {
 pub enum nsTimingFunction_Keyword { Implicit = 0, Explicit = 1, }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsTimingFunction_nsStyleStruct_h_unnamed_20 {
     pub mFunc: __BindgenUnionField<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21>,
     pub nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22: __BindgenUnionField<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22>,
     pub _bindgen_data_: [u32; 4usize],
 }
-impl nsTimingFunction_nsStyleStruct_h_unnamed_20 {
-    pub unsafe fn mFunc(&mut self)
-     ->
-         *mut nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21 {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22(&mut self)
-     ->
-         *mut nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22 {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-}
+impl nsTimingFunction_nsStyleStruct_h_unnamed_20 { }
 impl ::std::clone::Clone for nsTimingFunction_nsStyleStruct_h_unnamed_20 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_20() {
     assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20>()
                , 16usize);
     assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20>()
@@ -5943,30 +5746,17 @@ pub struct nsStyleContentData {
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsStyleContentData_nsStyleStruct_h_unnamed_23 {
     pub mString: __BindgenUnionField<*mut ::std::os::raw::c_ushort>,
     pub mImage: __BindgenUnionField<*mut imgRequestProxy>,
     pub mCounters: __BindgenUnionField<*mut Array>,
     pub _bindgen_data_: u64,
 }
-impl nsStyleContentData_nsStyleStruct_h_unnamed_23 {
-    pub unsafe fn mString(&mut self) -> *mut *mut ::std::os::raw::c_ushort {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mImage(&mut self) -> *mut *mut imgRequestProxy {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mCounters(&mut self) -> *mut *mut Array {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-}
+impl nsStyleContentData_nsStyleStruct_h_unnamed_23 { }
 impl ::std::clone::Clone for nsStyleContentData_nsStyleStruct_h_unnamed_23 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsStyleContentData_nsStyleStruct_h_unnamed_23() {
     assert_eq!(::std::mem::size_of::<nsStyleContentData_nsStyleStruct_h_unnamed_23>()
                , 8usize);
     assert_eq!(::std::mem::align_of::<nsStyleContentData_nsStyleStruct_h_unnamed_23>()
@@ -6109,26 +5899,17 @@ pub struct nsStyleSVGPaint {
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsStyleSVGPaint_nsStyleStruct_h_unnamed_24 {
     pub mColor: __BindgenUnionField<nscolor>,
     pub mPaintServer: __BindgenUnionField<*mut nsIURI>,
     pub _bindgen_data_: u64,
 }
-impl nsStyleSVGPaint_nsStyleStruct_h_unnamed_24 {
-    pub unsafe fn mColor(&mut self) -> *mut nscolor {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mPaintServer(&mut self) -> *mut *mut nsIURI {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-}
+impl nsStyleSVGPaint_nsStyleStruct_h_unnamed_24 { }
 impl ::std::clone::Clone for nsStyleSVGPaint_nsStyleStruct_h_unnamed_24 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsStyleSVGPaint_nsStyleStruct_h_unnamed_24() {
     assert_eq!(::std::mem::size_of::<nsStyleSVGPaint_nsStyleStruct_h_unnamed_24>()
                , 8usize);
     assert_eq!(::std::mem::align_of::<nsStyleSVGPaint_nsStyleStruct_h_unnamed_24>()
@@ -6213,26 +5994,17 @@ pub struct nsStyleClipPath {
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsStyleClipPath_nsStyleStruct_h_unnamed_26 {
     pub mBasicShape: __BindgenUnionField<*mut nsStyleBasicShape>,
     pub mURL: __BindgenUnionField<*mut nsIURI>,
     pub _bindgen_data_: u64,
 }
-impl nsStyleClipPath_nsStyleStruct_h_unnamed_26 {
-    pub unsafe fn mBasicShape(&mut self) -> *mut *mut nsStyleBasicShape {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mURL(&mut self) -> *mut *mut nsIURI {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-}
+impl nsStyleClipPath_nsStyleStruct_h_unnamed_26 { }
 impl ::std::clone::Clone for nsStyleClipPath_nsStyleStruct_h_unnamed_26 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsStyleClipPath_nsStyleStruct_h_unnamed_26() {
     assert_eq!(::std::mem::size_of::<nsStyleClipPath_nsStyleStruct_h_unnamed_26>()
                , 8usize);
     assert_eq!(::std::mem::align_of::<nsStyleClipPath_nsStyleStruct_h_unnamed_26>()
@@ -6252,26 +6024,17 @@ pub struct nsStyleFilter {
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsStyleFilter_nsStyleStruct_h_unnamed_27 {
     pub mURL: __BindgenUnionField<*mut nsIURI>,
     pub mDropShadow: __BindgenUnionField<*mut nsCSSShadowArray>,
     pub _bindgen_data_: u64,
 }
-impl nsStyleFilter_nsStyleStruct_h_unnamed_27 {
-    pub unsafe fn mURL(&mut self) -> *mut *mut nsIURI {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mDropShadow(&mut self) -> *mut *mut nsCSSShadowArray {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-}
+impl nsStyleFilter_nsStyleStruct_h_unnamed_27 { }
 impl ::std::clone::Clone for nsStyleFilter_nsStyleStruct_h_unnamed_27 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsStyleFilter_nsStyleStruct_h_unnamed_27() {
     assert_eq!(::std::mem::size_of::<nsStyleFilter_nsStyleStruct_h_unnamed_27>()
                , 8usize);
     assert_eq!(::std::mem::align_of::<nsStyleFilter_nsStyleStruct_h_unnamed_27>()
--- a/servo/ports/geckolib/gecko_bindings/structs_release.rs
+++ b/servo/ports/geckolib/gecko_bindings/structs_release.rs
@@ -2621,29 +2621,16 @@ impl ::std::clone::Clone for nsTArrayInf
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsTArrayHeader {
     pub mLength: u32,
     pub _bitfield_1: u32,
 }
-impl nsTArrayHeader {
-    pub fn set_mCapacity(&mut self, val: u32) {
-        self._bitfield_1 &= !(((1 << (31u32 as u32)) - 1) << 0usize);
-        self._bitfield_1 |= (val as u32) << 0usize;
-    }
-    pub fn set_mIsAutoArray(&mut self, val: bool) {
-        self._bitfield_1 &= !(((1 << (1u32 as u32)) - 1) << 31usize);
-        self._bitfield_1 |= (val as u32) << 31usize;
-    }
-    pub const fn new_bitfield_1(mCapacity: u32, mIsAutoArray: bool) -> u32 {
-        0 | ((mCapacity as u32) << 0u32) | ((mIsAutoArray as u32) << 31u32)
-    }
-}
 impl ::std::clone::Clone for nsTArrayHeader {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsTArrayHeader() {
     assert_eq!(::std::mem::size_of::<nsTArrayHeader>() , 8usize);
     assert_eq!(::std::mem::align_of::<nsTArrayHeader>() , 4usize);
 }
@@ -4188,101 +4175,17 @@ pub struct nsCSSValue_nsCSSValue_h_unnam
     pub mListDependent: __BindgenUnionField<*mut nsCSSValueList>,
     pub mSharedList: __BindgenUnionField<*mut nsCSSValueSharedList>,
     pub mPairList: __BindgenUnionField<*mut nsCSSValuePairList_heap>,
     pub mPairListDependent: __BindgenUnionField<*mut nsCSSValuePairList>,
     pub mFloatColor: __BindgenUnionField<*mut nsCSSValueFloatColor>,
     pub mFontFamilyList: __BindgenUnionField<*mut FontFamilyListRefCnt>,
     pub _bindgen_data_: u64,
 }
-impl nsCSSValue_nsCSSValue_h_unnamed_9 {
-    pub unsafe fn mInt(&mut self) -> *mut i32 {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mFloat(&mut self) -> *mut f32 {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mString(&mut self) -> *mut *mut nsStringBuffer {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mColor(&mut self) -> *mut nscolor {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mArray(&mut self) -> *mut *mut Array {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mURL(&mut self) -> *mut *mut URLValue {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mImage(&mut self) -> *mut *mut ImageValue {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mGridTemplateAreas(&mut self)
-     -> *mut *mut GridTemplateAreasValue {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mGradient(&mut self) -> *mut *mut nsCSSValueGradient {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mTokenStream(&mut self) -> *mut *mut nsCSSValueTokenStream {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mPair(&mut self) -> *mut *mut nsCSSValuePair_heap {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mRect(&mut self) -> *mut *mut nsCSSRect_heap {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mTriplet(&mut self) -> *mut *mut nsCSSValueTriplet_heap {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mList(&mut self) -> *mut *mut nsCSSValueList_heap {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mListDependent(&mut self) -> *mut *mut nsCSSValueList {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mSharedList(&mut self) -> *mut *mut nsCSSValueSharedList {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mPairList(&mut self) -> *mut *mut nsCSSValuePairList_heap {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mPairListDependent(&mut self)
-     -> *mut *mut nsCSSValuePairList {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mFloatColor(&mut self) -> *mut *mut nsCSSValueFloatColor {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mFontFamilyList(&mut self)
-     -> *mut *mut FontFamilyListRefCnt {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-}
+impl nsCSSValue_nsCSSValue_h_unnamed_9 { }
 impl ::std::clone::Clone for nsCSSValue_nsCSSValue_h_unnamed_9 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsCSSValue_nsCSSValue_h_unnamed_9() {
     assert_eq!(::std::mem::size_of::<nsCSSValue_nsCSSValue_h_unnamed_9>() ,
                8usize);
     assert_eq!(::std::mem::align_of::<nsCSSValue_nsCSSValue_h_unnamed_9>() ,
@@ -4643,29 +4546,16 @@ pub struct nsIAtom {
    * nsStringBuffer::FromData() calls above are valid.
    */
     pub mString: *mut ::std::os::raw::c_ushort,
 }
 #[repr(C)]
 pub struct _vftable_nsIAtom {
     pub _base: _vftable_nsISupports,
 }
-impl nsIAtom {
-    pub fn set_mLength(&mut self, val: u32) {
-        self._bitfield_1 &= !(((1 << (31u32 as u32)) - 1) << 0usize);
-        self._bitfield_1 |= (val as u32) << 0usize;
-    }
-    pub fn set_mIsStatic(&mut self, val: bool) {
-        self._bitfield_1 &= !(((1 << (1u32 as u32)) - 1) << 31usize);
-        self._bitfield_1 |= (val as u32) << 31usize;
-    }
-    pub const fn new_bitfield_1(mLength: u32, mIsStatic: bool) -> u32 {
-        0 | ((mLength as u32) << 0u32) | ((mIsStatic as u32) << 31u32)
-    }
-}
 impl ::std::clone::Clone for nsIAtom {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsIAtom() {
     assert_eq!(::std::mem::size_of::<nsIAtom>() , 24usize);
     assert_eq!(::std::mem::align_of::<nsIAtom>() , 8usize);
 }
@@ -4866,30 +4756,17 @@ pub enum nsStyleUnit {
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsStyleCoord_h_unnamed_15 {
     pub mInt: __BindgenUnionField<i32>,
     pub mFloat: __BindgenUnionField<f32>,
     pub mPointer: __BindgenUnionField<*mut ::std::os::raw::c_void>,
     pub _bindgen_data_: u64,
 }
-impl nsStyleCoord_h_unnamed_15 {
-    pub unsafe fn mInt(&mut self) -> *mut i32 {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mFloat(&mut self) -> *mut f32 {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mPointer(&mut self) -> *mut *mut ::std::os::raw::c_void {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-}
+impl nsStyleCoord_h_unnamed_15 { }
 impl ::std::clone::Clone for nsStyleCoord_h_unnamed_15 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsStyleCoord_h_unnamed_15() {
     assert_eq!(::std::mem::size_of::<nsStyleCoord_h_unnamed_15>() , 8usize);
     assert_eq!(::std::mem::align_of::<nsStyleCoord_h_unnamed_15>() , 8usize);
 }
@@ -5093,31 +4970,17 @@ pub struct nsStyleImage {
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsStyleImage_nsStyleStruct_h_unnamed_18 {
     pub mImage: __BindgenUnionField<*mut imgRequestProxy>,
     pub mGradient: __BindgenUnionField<*mut nsStyleGradient>,
     pub mElementId: __BindgenUnionField<*mut ::std::os::raw::c_ushort>,
     pub _bindgen_data_: u64,
 }
-impl nsStyleImage_nsStyleStruct_h_unnamed_18 {
-    pub unsafe fn mImage(&mut self) -> *mut *mut imgRequestProxy {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mGradient(&mut self) -> *mut *mut nsStyleGradient {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mElementId(&mut self)
-     -> *mut *mut ::std::os::raw::c_ushort {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-}
+impl nsStyleImage_nsStyleStruct_h_unnamed_18 { }
 impl ::std::clone::Clone for nsStyleImage_nsStyleStruct_h_unnamed_18 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsStyleImage_nsStyleStruct_h_unnamed_18() {
     assert_eq!(::std::mem::size_of::<nsStyleImage_nsStyleStruct_h_unnamed_18>()
                , 8usize);
     assert_eq!(::std::mem::align_of::<nsStyleImage_nsStyleStruct_h_unnamed_18>()
@@ -5457,29 +5320,16 @@ pub struct nsStyleGridTemplate {
     pub mLineNameLists: nsTArray<nsTArray<nsString>>,
     pub mMinTrackSizingFunctions: nsTArray<nsStyleCoord>,
     pub mMaxTrackSizingFunctions: nsTArray<nsStyleCoord>,
     pub mRepeatAutoLineNameListBefore: nsTArray<nsString>,
     pub mRepeatAutoLineNameListAfter: nsTArray<nsString>,
     pub mRepeatAutoIndex: i16,
     pub _bitfield_1: u8,
 }
-impl nsStyleGridTemplate {
-    pub fn set_mIsAutoFill(&mut self, val: bool) {
-        self._bitfield_1 &= !(((1 << (1u32 as u8)) - 1) << 0usize);
-        self._bitfield_1 |= (val as u8) << 0usize;
-    }
-    pub fn set_mIsSubgrid(&mut self, val: bool) {
-        self._bitfield_1 &= !(((1 << (1u32 as u8)) - 1) << 1usize);
-        self._bitfield_1 |= (val as u8) << 1usize;
-    }
-    pub const fn new_bitfield_1(mIsAutoFill: bool, mIsSubgrid: bool) -> u8 {
-        0 | ((mIsAutoFill as u8) << 0u32) | ((mIsSubgrid as u8) << 1u32)
-    }
-}
 #[test]
 fn bindgen_test_layout_nsStyleGridTemplate() {
     assert_eq!(::std::mem::size_of::<nsStyleGridTemplate>() , 48usize);
     assert_eq!(::std::mem::align_of::<nsStyleGridTemplate>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsStylePosition {
@@ -5589,50 +5439,16 @@ pub struct nsStyleText {
     pub mWordSpacing: nsStyleCoord,
     pub mLetterSpacing: nsStyleCoord,
     pub mLineHeight: nsStyleCoord,
     pub mTextIndent: nsStyleCoord,
     pub mWebkitTextStrokeWidth: nsStyleCoord,
     pub mTextShadow: RefPtr<nsCSSShadowArray>,
     pub mTextEmphasisStyleString: nsString,
 }
-impl nsStyleText {
-    pub fn set_mTextAlignTrue(&mut self, val: bool) {
-        self._bitfield_1 &= !(((1 << (1u32 as u8)) - 1) << 0usize);
-        self._bitfield_1 |= (val as u8) << 0usize;
-    }
-    pub fn set_mTextAlignLastTrue(&mut self, val: bool) {
-        self._bitfield_1 &= !(((1 << (1u32 as u8)) - 1) << 1usize);
-        self._bitfield_1 |= (val as u8) << 1usize;
-    }
-    pub fn set_mTextEmphasisColorForeground(&mut self, val: bool) {
-        self._bitfield_1 &= !(((1 << (1u32 as u8)) - 1) << 2usize);
-        self._bitfield_1 |= (val as u8) << 2usize;
-    }
-    pub fn set_mWebkitTextFillColorForeground(&mut self, val: bool) {
-        self._bitfield_1 &= !(((1 << (1u32 as u8)) - 1) << 3usize);
-        self._bitfield_1 |= (val as u8) << 3usize;
-    }
-    pub fn set_mWebkitTextStrokeColorForeground(&mut self, val: bool) {
-        self._bitfield_1 &= !(((1 << (1u32 as u8)) - 1) << 4usize);
-        self._bitfield_1 |= (val as u8) << 4usize;
-    }
-    pub const fn new_bitfield_1(mTextAlignTrue: bool,
-                                mTextAlignLastTrue: bool,
-                                mTextEmphasisColorForeground: bool,
-                                mWebkitTextFillColorForeground: bool,
-                                mWebkitTextStrokeColorForeground: bool)
-     -> u8 {
-        0 | ((mTextAlignTrue as u8) << 0u32) |
-            ((mTextAlignLastTrue as u8) << 1u32) |
-            ((mTextEmphasisColorForeground as u8) << 2u32) |
-            ((mWebkitTextFillColorForeground as u8) << 3u32) |
-            ((mWebkitTextStrokeColorForeground as u8) << 4u32)
-    }
-}
 #[test]
 fn bindgen_test_layout_nsStyleText() {
     assert_eq!(::std::mem::size_of::<nsStyleText>() , 136usize);
     assert_eq!(::std::mem::align_of::<nsStyleText>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsStyleImageOrientation {
@@ -5708,30 +5524,17 @@ pub enum nsTimingFunction_StepSyntax {
 pub enum nsTimingFunction_Keyword { Implicit = 0, Explicit = 1, }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsTimingFunction_nsStyleStruct_h_unnamed_20 {
     pub mFunc: __BindgenUnionField<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21>,
     pub nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22: __BindgenUnionField<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22>,
     pub _bindgen_data_: [u32; 4usize],
 }
-impl nsTimingFunction_nsStyleStruct_h_unnamed_20 {
-    pub unsafe fn mFunc(&mut self)
-     ->
-         *mut nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21 {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22(&mut self)
-     ->
-         *mut nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22 {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-}
+impl nsTimingFunction_nsStyleStruct_h_unnamed_20 { }
 impl ::std::clone::Clone for nsTimingFunction_nsStyleStruct_h_unnamed_20 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_20() {
     assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20>()
                , 16usize);
     assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20>()
@@ -5920,30 +5723,17 @@ pub struct nsStyleContentData {
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsStyleContentData_nsStyleStruct_h_unnamed_23 {
     pub mString: __BindgenUnionField<*mut ::std::os::raw::c_ushort>,
     pub mImage: __BindgenUnionField<*mut imgRequestProxy>,
     pub mCounters: __BindgenUnionField<*mut Array>,
     pub _bindgen_data_: u64,
 }
-impl nsStyleContentData_nsStyleStruct_h_unnamed_23 {
-    pub unsafe fn mString(&mut self) -> *mut *mut ::std::os::raw::c_ushort {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mImage(&mut self) -> *mut *mut imgRequestProxy {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mCounters(&mut self) -> *mut *mut Array {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-}
+impl nsStyleContentData_nsStyleStruct_h_unnamed_23 { }
 impl ::std::clone::Clone for nsStyleContentData_nsStyleStruct_h_unnamed_23 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsStyleContentData_nsStyleStruct_h_unnamed_23() {
     assert_eq!(::std::mem::size_of::<nsStyleContentData_nsStyleStruct_h_unnamed_23>()
                , 8usize);
     assert_eq!(::std::mem::align_of::<nsStyleContentData_nsStyleStruct_h_unnamed_23>()
@@ -6086,26 +5876,17 @@ pub struct nsStyleSVGPaint {
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsStyleSVGPaint_nsStyleStruct_h_unnamed_24 {
     pub mColor: __BindgenUnionField<nscolor>,
     pub mPaintServer: __BindgenUnionField<*mut nsIURI>,
     pub _bindgen_data_: u64,
 }
-impl nsStyleSVGPaint_nsStyleStruct_h_unnamed_24 {
-    pub unsafe fn mColor(&mut self) -> *mut nscolor {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mPaintServer(&mut self) -> *mut *mut nsIURI {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-}
+impl nsStyleSVGPaint_nsStyleStruct_h_unnamed_24 { }
 impl ::std::clone::Clone for nsStyleSVGPaint_nsStyleStruct_h_unnamed_24 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsStyleSVGPaint_nsStyleStruct_h_unnamed_24() {
     assert_eq!(::std::mem::size_of::<nsStyleSVGPaint_nsStyleStruct_h_unnamed_24>()
                , 8usize);
     assert_eq!(::std::mem::align_of::<nsStyleSVGPaint_nsStyleStruct_h_unnamed_24>()
@@ -6190,26 +5971,17 @@ pub struct nsStyleClipPath {
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsStyleClipPath_nsStyleStruct_h_unnamed_26 {
     pub mBasicShape: __BindgenUnionField<*mut nsStyleBasicShape>,
     pub mURL: __BindgenUnionField<*mut nsIURI>,
     pub _bindgen_data_: u64,
 }
-impl nsStyleClipPath_nsStyleStruct_h_unnamed_26 {
-    pub unsafe fn mBasicShape(&mut self) -> *mut *mut nsStyleBasicShape {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mURL(&mut self) -> *mut *mut nsIURI {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-}
+impl nsStyleClipPath_nsStyleStruct_h_unnamed_26 { }
 impl ::std::clone::Clone for nsStyleClipPath_nsStyleStruct_h_unnamed_26 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsStyleClipPath_nsStyleStruct_h_unnamed_26() {
     assert_eq!(::std::mem::size_of::<nsStyleClipPath_nsStyleStruct_h_unnamed_26>()
                , 8usize);
     assert_eq!(::std::mem::align_of::<nsStyleClipPath_nsStyleStruct_h_unnamed_26>()
@@ -6229,26 +6001,17 @@ pub struct nsStyleFilter {
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsStyleFilter_nsStyleStruct_h_unnamed_27 {
     pub mURL: __BindgenUnionField<*mut nsIURI>,
     pub mDropShadow: __BindgenUnionField<*mut nsCSSShadowArray>,
     pub _bindgen_data_: u64,
 }
-impl nsStyleFilter_nsStyleStruct_h_unnamed_27 {
-    pub unsafe fn mURL(&mut self) -> *mut *mut nsIURI {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-    pub unsafe fn mDropShadow(&mut self) -> *mut *mut nsCSSShadowArray {
-        let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_);
-        ::std::mem::transmute(raw.offset(0))
-    }
-}
+impl nsStyleFilter_nsStyleStruct_h_unnamed_27 { }
 impl ::std::clone::Clone for nsStyleFilter_nsStyleStruct_h_unnamed_27 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsStyleFilter_nsStyleStruct_h_unnamed_27() {
     assert_eq!(::std::mem::size_of::<nsStyleFilter_nsStyleStruct_h_unnamed_27>()
                , 8usize);
     assert_eq!(::std::mem::align_of::<nsStyleFilter_nsStyleStruct_h_unnamed_27>()
--- a/servo/ports/geckolib/gecko_bindings/tools/regen_style_structs.sh
+++ b/servo/ports/geckolib/gecko_bindings/tools/regen_style_structs.sh
@@ -38,16 +38,17 @@ fi
 
 export RUST_BACKTRACE=1
 
 for target in debug release; do
   ./rust-bindgen/target/debug/bindgen                               \
     -o ../structs_${target}.rs                                      \
     -x c++ -std=gnu++0x                                             \
     -allow-unknown-types                                            \
+    -no-bitfield-methods                                            \
     "-I$DIST_INCLUDE" "-I$DIST_INCLUDE/nspr"                        \
     "-I$1/../nsprpub/pr/include"                                    \
     $PLATFORM_DEPENDENT_DEFINES                                     \
     -ignore-functions                                               \
     -no-type-renaming                                               \
     -DMOZILLA_INTERNAL_API                                          \
     -DMOZ_STYLO_BINDINGS=1                                          \
     `[ "$target" = debug ] && echo "-DDEBUG=1 -DJS_DEBUG=1"`        \