style: Use cbindgen for basic_shape::FillRule.

Just a minor fix to use cbindgen to avoid the conversion between
basic_shape::FillRule and mozilla::StyleFillRule.

Differential Revision: https://phabricator.services.mozilla.com/D4171
This commit is contained in:
Boris Chiou 2018-08-23 23:00:16 +00:00 committed by Emilio Cobos Álvarez
parent e46daa09ea
commit 68ab6217bd
No known key found for this signature in database
GPG key ID: 056B727BB9C1027C
3 changed files with 12 additions and 8 deletions

View file

@ -23,5 +23,11 @@ derive_helper_methods = true
[export]
prefix = "Style"
include = ["StyleDisplay", "StyleAppearance", "StyleDisplayMode", "StylePathCommand"]
include = [
"StyleAppearance",
"StyleDisplay",
"StyleDisplayMode",
"StyleFillRule",
"StylePathCommand"
]
item_types = ["enums", "structs", "typedefs"]

View file

@ -4986,10 +4986,10 @@ fn static_assert() {
pub fn set_${ident}(&mut self, v: longhands::${ident}::computed_value::T) {
use gecko_bindings::bindings::{Gecko_NewBasicShape, Gecko_DestroyShapeSource};
use gecko_bindings::structs::{StyleBasicShape, StyleBasicShapeType, StyleShapeSourceType};
use gecko_bindings::structs::{StyleFillRule, StyleGeometryBox, StyleShapeSource};
use gecko_bindings::structs::{StyleGeometryBox, StyleShapeSource};
use gecko::conversions::basic_shape::set_corners_from_radius;
use gecko::values::GeckoStyleCoordConvertible;
use values::generics::basic_shape::{BasicShape, FillRule, ShapeSource};
use values::generics::basic_shape::{BasicShape, ShapeSource};
let ref mut ${ident} = self.gecko.${gecko_ffi_name};
@ -5083,11 +5083,8 @@ fn static_assert() {
coord.0.to_gecko_style_coord(&mut shape.mCoordinates[2 * i]);
coord.1.to_gecko_style_coord(&mut shape.mCoordinates[2 * i + 1]);
}
shape.mFillRule = if poly.fill == FillRule::Evenodd {
StyleFillRule::Evenodd
} else {
StyleFillRule::Nonzero
};
// unsafe: cbindgen ensures the representation is the same.
shape.mFillRule = unsafe { transmute(poly.fill) };
}
}

View file

@ -138,6 +138,7 @@ pub struct PolygonCoord<LengthOrPercentage>(pub LengthOrPercentage, pub LengthOr
#[cfg_attr(feature = "servo", derive(Deserialize, Serialize))]
#[derive(Clone, Copy, Debug, Eq, MallocSizeOf, Parse, PartialEq,
SpecifiedValueInfo, ToComputedValue, ToCss)]
#[repr(u8)]
pub enum FillRule {
Nonzero,
Evenodd,