diff options
Diffstat (limited to 'components/layout_thread')
-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 |
3 files changed, 11 insertions, 26 deletions
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 { |