Skip to content

Commit

Permalink
style: Use cbindgen for basic_shape::FillRule.
Browse files Browse the repository at this point in the history
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
  • Loading branch information
BorisChiou authored and emilio committed Sep 3, 2018
1 parent e46daa0 commit 68ab621
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 8 deletions.
8 changes: 7 additions & 1 deletion components/style/cbindgen.toml
Expand Up @@ -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"]
11 changes: 4 additions & 7 deletions components/style/properties/gecko.mako.rs
Expand Up @@ -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};

Expand Down Expand Up @@ -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) };
}
}

Expand Down
1 change: 1 addition & 0 deletions components/style/values/generics/basic_shape.rs
Expand Up @@ -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,
Expand Down

0 comments on commit 68ab621

Please sign in to comment.