diff options
-rw-r--r-- | components/layout/traversal.rs | 9 | ||||
-rw-r--r-- | components/style/traversal.rs | 6 | ||||
-rw-r--r-- | ports/geckolib/traversal.rs | 9 |
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>) {} } |