diff options
author | Emilio Cobos Álvarez <emilio@crisal.io> | 2018-08-08 01:10:03 +0200 |
---|---|---|
committer | Emilio Cobos Álvarez <emilio@crisal.io> | 2018-08-08 01:34:35 +0200 |
commit | 689293e4fbeb3852eefcda18304a0ae71dc9b8c2 (patch) | |
tree | eb88f0b050913fdec866d47b91d1a8b40ffb1920 | |
parent | 6c5456b4b6339596263bd10631b52a126dbc97f5 (diff) | |
download | servo-689293e4fbeb3852eefcda18304a0ae71dc9b8c2.tar.gz servo-689293e4fbeb3852eefcda18304a0ae71dc9b8c2.zip |
Fix Servo build.
-rw-r--r-- | Cargo.lock | 2 | ||||
-rw-r--r-- | components/layout/Cargo.toml | 1 | ||||
-rw-r--r-- | components/layout/animation.rs | 8 | ||||
-rw-r--r-- | components/layout/lib.rs | 1 | ||||
-rw-r--r-- | components/layout_thread/Cargo.toml | 1 | ||||
-rw-r--r-- | components/layout_thread/dom_wrapper.rs | 19 | ||||
-rw-r--r-- | components/layout_thread/lib.rs | 17 | ||||
-rw-r--r-- | components/script/dom/element.rs | 8 | ||||
-rw-r--r-- | components/style/lib.rs | 1 | ||||
-rw-r--r-- | components/style/properties/properties.mako.rs | 6 | ||||
-rw-r--r-- | components/style/values/specified/box.rs | 1 | ||||
-rw-r--r-- | tests/unit/style/stylesheets.rs | 1 |
12 files changed, 24 insertions, 42 deletions
diff --git a/Cargo.lock b/Cargo.lock index 99bf3c46124..fd7951ef009 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1716,6 +1716,7 @@ dependencies = [ "canvas_traits 0.0.1", "euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "gfx 0.0.1", "gfx_traits 0.0.1", "html5ever 0.22.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1759,6 +1760,7 @@ dependencies = [ "embedder_traits 0.0.1", "euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "gfx 0.0.1", "gfx_traits 0.0.1", "histogram 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/components/layout/Cargo.toml b/components/layout/Cargo.toml index d0604de2c48..ac387d59585 100644 --- a/components/layout/Cargo.toml +++ b/components/layout/Cargo.toml @@ -18,6 +18,7 @@ bitflags = "1.0" canvas_traits = {path = "../canvas_traits"} euclid = "0.19" fnv = "1.0" +fxhash = "0.2" gfx = {path = "../gfx"} gfx_traits = {path = "../gfx_traits"} html5ever = "0.22" diff --git a/components/layout/animation.rs b/components/layout/animation.rs index 05718dda00a..3a09094b2a9 100644 --- a/components/layout/animation.rs +++ b/components/layout/animation.rs @@ -7,7 +7,7 @@ use context::LayoutContext; use display_list::items::OpaqueNode; use flow::{Flow, GetBaseFlow}; -use fnv::FnvHashMap; +use fxhash::FxHashMap; use ipc_channel::ipc::IpcSender; use msg::constellation_msg::PipelineId; use opaque_node::OpaqueNodeMethods; @@ -26,8 +26,8 @@ use style::timer::Timer; pub fn update_animation_state<E>( constellation_chan: &IpcSender<ConstellationMsg>, script_chan: &IpcSender<ConstellationControlMsg>, - running_animations: &mut FnvHashMap<OpaqueNode, Vec<Animation>>, - expired_animations: &mut FnvHashMap<OpaqueNode, Vec<Animation>>, + running_animations: &mut FxHashMap<OpaqueNode, Vec<Animation>>, + expired_animations: &mut FxHashMap<OpaqueNode, Vec<Animation>>, mut newly_transitioning_nodes: Option<&mut Vec<UntrustedNodeAddress>>, new_animations_receiver: &Receiver<Animation>, pipeline_id: PipelineId, @@ -153,7 +153,7 @@ where pub fn recalc_style_for_animations<E>( context: &LayoutContext, flow: &mut Flow, - animations: &FnvHashMap<OpaqueNode, Vec<Animation>>, + animations: &FxHashMap<OpaqueNode, Vec<Animation>>, ) where E: TElement, diff --git a/components/layout/lib.rs b/components/layout/lib.rs index bb3a3dc20b2..c0c5633ca24 100644 --- a/components/layout/lib.rs +++ b/components/layout/lib.rs @@ -11,6 +11,7 @@ extern crate bitflags; extern crate canvas_traits; extern crate euclid; extern crate fnv; +extern crate fxhash; extern crate gfx; extern crate gfx_traits; #[macro_use] extern crate html5ever; diff --git a/components/layout_thread/Cargo.toml b/components/layout_thread/Cargo.toml index 125c57946f6..a17f90e899e 100644 --- a/components/layout_thread/Cargo.toml +++ b/components/layout_thread/Cargo.toml @@ -18,6 +18,7 @@ atomic_refcell = "0.1" embedder_traits = {path = "../embedder_traits"} euclid = "0.19" fnv = "1.0" +fxhash = "0.2" gfx = {path = "../gfx"} gfx_traits = {path = "../gfx_traits"} histogram = "0.6.8" diff --git a/components/layout_thread/dom_wrapper.rs b/components/layout_thread/dom_wrapper.rs index 89a21ec64d5..7b2892f7c9a 100644 --- a/components/layout_thread/dom_wrapper.rs +++ b/components/layout_thread/dom_wrapper.rs @@ -675,14 +675,6 @@ impl<'le> ::selectors::Element for ServoLayoutElement<'le> { None } - fn first_child_element(&self) -> Option<ServoLayoutElement<'le>> { - self.as_node().dom_children().filter_map(|n| n.as_element()).next() - } - - fn last_child_element(&self) -> Option<ServoLayoutElement<'le>> { - self.as_node().rev_children().filter_map(|n| n.as_element()).next() - } - fn prev_sibling_element(&self) -> Option<ServoLayoutElement<'le>> { let mut node = self.as_node(); while let Some(sibling) = node.prev_sibling() { @@ -1223,17 +1215,6 @@ impl<'le> ::selectors::Element for ServoThreadSafeLayoutElement<'le> { None } - fn first_child_element(&self) -> Option<Self> { - warn!("ServoThreadSafeLayoutElement::first_child_element called"); - None - } - - // Skips non-element nodes - fn last_child_element(&self) -> Option<Self> { - warn!("ServoThreadSafeLayoutElement::last_child_element called"); - None - } - // Skips non-element nodes fn prev_sibling_element(&self) -> Option<Self> { warn!("ServoThreadSafeLayoutElement::prev_sibling_element called"); diff --git a/components/layout_thread/lib.rs b/components/layout_thread/lib.rs index 3c39b95a28b..1d5676b4b54 100644 --- a/components/layout_thread/lib.rs +++ b/components/layout_thread/lib.rs @@ -12,6 +12,7 @@ extern crate atomic_refcell; extern crate embedder_traits; extern crate euclid; extern crate fnv; +extern crate fxhash; extern crate gfx; extern crate gfx_traits; extern crate histogram; @@ -59,6 +60,7 @@ use dom_wrapper::drop_style_and_layout_data; use embedder_traits::resources::{self, Resource}; use euclid::{Point2D, Rect, Size2D, TypedScale, TypedSize2D}; use fnv::FnvHashMap; +use fxhash::FxHashMap; use gfx::font; use gfx::font_cache_thread::FontCacheThread; use gfx::font_context; @@ -223,10 +225,10 @@ pub struct LayoutThread { document_shared_lock: Option<SharedRwLock>, /// The list of currently-running animations. - running_animations: ServoArc<RwLock<FnvHashMap<OpaqueNode, Vec<Animation>>>>, + running_animations: ServoArc<RwLock<FxHashMap<OpaqueNode, Vec<Animation>>>>, /// The list of animations that have expired since the last style recalculation. - expired_animations: ServoArc<RwLock<FnvHashMap<OpaqueNode, Vec<Animation>>>>, + expired_animations: ServoArc<RwLock<FxHashMap<OpaqueNode, Vec<Animation>>>>, /// A counter for epoch messages epoch: Cell<Epoch>, @@ -503,7 +505,7 @@ impl LayoutThread { constellation_chan: constellation_chan.clone(), time_profiler_chan: time_profiler_chan, mem_profiler_chan: mem_profiler_chan, - registered_painters: RegisteredPaintersImpl(FnvHashMap::default()), + registered_painters: RegisteredPaintersImpl(Default::default()), image_cache: image_cache.clone(), font_cache_thread: font_cache_thread, first_reflow: Cell::new(true), @@ -517,8 +519,8 @@ impl LayoutThread { outstanding_web_fonts: Arc::new(AtomicUsize::new(0)), root_flow: RefCell::new(None), document_shared_lock: None, - running_animations: ServoArc::new(RwLock::new(FnvHashMap::default())), - expired_animations: ServoArc::new(RwLock::new(FnvHashMap::default())), + running_animations: ServoArc::new(RwLock::new(Default::default())), + expired_animations: ServoArc::new(RwLock::new(Default::default())), epoch: Cell::new(Epoch(0)), viewport_size: Size2D::new(Au(0), Au(0)), webrender_api: webrender_api_sender.create_api(), @@ -1813,7 +1815,8 @@ lazy_static! { struct RegisteredPainterImpl { painter: Box<Painter>, name: Atom, - properties: FnvHashMap<Atom, PropertyId>, + // FIXME: Should be a PrecomputedHashMap. + properties: FxHashMap<Atom, PropertyId>, } impl SpeculativePainter for RegisteredPainterImpl { @@ -1823,7 +1826,7 @@ impl SpeculativePainter for RegisteredPainterImpl { } impl RegisteredSpeculativePainter for RegisteredPainterImpl { - fn properties(&self) -> &FnvHashMap<Atom, PropertyId> { + fn properties(&self) -> &FxHashMap<Atom, PropertyId> { &self.properties } fn name(&self) -> Atom { diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index 547367e2f36..af24036efd2 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -2640,14 +2640,6 @@ impl<'a> SelectorsElement for DomRoot<Element> { false } - fn first_child_element(&self) -> Option<DomRoot<Element>> { - self.node.child_elements().next() - } - - fn last_child_element(&self) -> Option<DomRoot<Element>> { - self.node.rev_children().filter_map(DomRoot::downcast).next() - } - fn prev_sibling_element(&self) -> Option<DomRoot<Element>> { self.node.preceding_siblings().filter_map(DomRoot::downcast).next() } diff --git a/components/style/lib.rs b/components/style/lib.rs index 519b6187759..a43f3f87c45 100644 --- a/components/style/lib.rs +++ b/components/style/lib.rs @@ -93,6 +93,7 @@ extern crate string_cache; #[macro_use] extern crate style_derive; extern crate style_traits; +#[cfg(feature = "gecko")] extern crate thin_slice; extern crate time; extern crate uluru; diff --git a/components/style/properties/properties.mako.rs b/components/style/properties/properties.mako.rs index 809820eae07..fed6d52b7f7 100644 --- a/components/style/properties/properties.mako.rs +++ b/components/style/properties/properties.mako.rs @@ -605,8 +605,9 @@ impl NonCustomPropertyId { COLLECT_FUNCTIONS[self.0](f); } + /// Turns this `NonCustomPropertyId` into a `PropertyId`. #[inline] - fn to_property_id(self) -> PropertyId { + pub fn to_property_id(self) -> PropertyId { use std::mem::transmute; if self.0 < ${len(data.longhands)} { return unsafe { @@ -2412,7 +2413,7 @@ pub use gecko_properties::style_structs; /// The module where all the style structs are defined. #[cfg(feature = "servo")] pub mod style_structs { - use fx::FxHasher; + use fxhash::FxHasher; use super::longhands; use std::hash::{Hash, Hasher}; use logical_geometry::WritingMode; @@ -4265,6 +4266,7 @@ pub enum AliasId { #[derive(Clone, Copy, Eq, PartialEq)] enum AliasedPropertyId { + #[allow(dead_code)] // Servo doesn't have aliased shorthands. Shorthand(ShorthandId), Longhand(LonghandId), } diff --git a/components/style/values/specified/box.rs b/components/style/values/specified/box.rs index f1295fa5f0b..11084ce7d44 100644 --- a/components/style/values/specified/box.rs +++ b/components/style/values/specified/box.rs @@ -19,7 +19,6 @@ use values::generics::box_::VerticalAlign as GenericVerticalAlign; use values::specified::{AllowQuirks, Number}; use values::specified::length::{LengthOrPercentage, NonNegativeLength}; -#[cfg(feature = "gecko")] fn in_ua_or_chrome_sheet(context: &ParserContext) -> bool { use stylesheets::Origin; context.stylesheet_origin == Origin::UserAgent || diff --git a/tests/unit/style/stylesheets.rs b/tests/unit/style/stylesheets.rs index 78e4b0a7bca..824c7cab417 100644 --- a/tests/unit/style/stylesheets.rs +++ b/tests/unit/style/stylesheets.rs @@ -98,7 +98,6 @@ fn test_parse_stylesheet() { }), Component::AttributeInNoNamespace { local_name: local_name!("type"), - local_name_lower: local_name!("type"), operator: AttrSelectorOperator::Equal, value: "hidden".to_owned(), case_sensitivity: ParsedCaseSensitivity::AsciiCaseInsensitive, |