aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout_thread
diff options
context:
space:
mode:
Diffstat (limited to 'components/layout_thread')
-rw-r--r--components/layout_thread/Cargo.toml1
-rw-r--r--components/layout_thread/dom_wrapper.rs19
-rw-r--r--components/layout_thread/lib.rs17
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 {