aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/layout/traversal.rs9
-rw-r--r--components/style/traversal.rs6
-rw-r--r--ports/geckolib/traversal.rs9
3 files changed, 16 insertions, 8 deletions
diff --git a/components/layout/traversal.rs b/components/layout/traversal.rs
index 692d956f000..bd07e1f72bb 100644
--- a/components/layout/traversal.rs
+++ b/components/layout/traversal.rs
@@ -65,7 +65,14 @@ impl<'lc, 'ln> DomTraversalContext<ServoLayoutNode<'ln>> for RecalcStyleAndConst
}
}
- fn process_preorder(&self, node: ServoLayoutNode<'ln>) { recalc_style_at(&self.context, self.root, node); }
+ fn process_preorder(&self, node: ServoLayoutNode<'ln>) {
+ // FIXME(pcwalton): Stop allocating here. Ideally this should just be done by the HTML
+ // parser.
+ node.initialize_data();
+
+ recalc_style_at(&self.context, self.root, node);
+ }
+
fn process_postorder(&self, node: ServoLayoutNode<'ln>) { construct_flows_at(&self.context, self.root, node); }
}
diff --git a/components/style/traversal.rs b/components/style/traversal.rs
index 386af02e5ef..1afdcbb34c7 100644
--- a/components/style/traversal.rs
+++ b/components/style/traversal.rs
@@ -125,12 +125,6 @@ pub fn recalc_style_at<'a, N, C>(context: &'a C,
where N: TNode,
C: StyleContext<'a, <N::ConcreteElement as Element>::Impl>,
<N::ConcreteElement as Element>::Impl: SelectorImplExt<ComputedValues=N::ConcreteComputedValues> + 'a {
- // Initialize layout data.
- //
- // FIXME(pcwalton): Stop allocating here. Ideally this should just be done by the HTML
- // parser.
- node.initialize_data();
-
// Get the parent node.
let parent_opt = match node.parent_node() {
Some(parent) if parent.is_element() => Some(parent),
diff --git a/ports/geckolib/traversal.rs b/ports/geckolib/traversal.rs
index 4e10d8c8fc8..f400377aeca 100644
--- a/ports/geckolib/traversal.rs
+++ b/ports/geckolib/traversal.rs
@@ -80,7 +80,14 @@ impl<'lc, 'ln> DomTraversalContext<GeckoNode<'ln>> for RecalcStyleOnly<'lc> {
}
}
- fn process_preorder(&self, node: GeckoNode<'ln>) { recalc_style_at(&self.context, self.root, node); }
+ fn process_preorder(&self, node: GeckoNode<'ln>) {
+ // FIXME(pcwalton): Stop allocating here. Ideally this should just be done by the HTML
+ // parser.
+ node.initialize_data();
+
+ recalc_style_at(&self.context, self.root, node);
+ }
+
fn process_postorder(&self, _: GeckoNode<'ln>) {}
}