diff options
author | Anthony Ramine <nox@nox.paris> | 2020-04-06 12:40:05 +0200 |
---|---|---|
committer | Anthony Ramine <nox@nox.paris> | 2020-04-06 12:40:05 +0200 |
commit | 88d79fe46d51a1d5416a1c09b795f089d0b4899a (patch) | |
tree | ee581a78d191dc2beeda338323f93111efe738a6 | |
parent | e3be136c9b9d44ed0977780de8e8a8b17e279460 (diff) | |
download | servo-88d79fe46d51a1d5416a1c09b795f089d0b4899a.tar.gz servo-88d79fe46d51a1d5416a1c09b795f089d0b4899a.zip |
Remove postorder traversal from layout 2020 during styling
-rw-r--r-- | components/layout_2020/traversal.rs | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/components/layout_2020/traversal.rs b/components/layout_2020/traversal.rs index 71f7a944247..1f73a7816f1 100644 --- a/components/layout_2020/traversal.rs +++ b/components/layout_2020/traversal.rs @@ -45,23 +45,26 @@ where ) where F: FnMut(E::ConcreteNode), { - unsafe { node.initialize_data() }; - - if !node.is_text_node() { - let el = node.as_element().unwrap(); - let mut data = el.mutate_data().unwrap(); - recalc_style_at(self, traversal_data, context, el, &mut data, note_child); - } - } - - fn process_postorder(&self, _style_context: &mut StyleContext<E>, node: E::ConcreteNode) { - if let Some(el) = node.as_element() { - unsafe { + unsafe { + node.initialize_data(); + if !node.is_text_node() { + let el = node.as_element().unwrap(); + let mut data = el.mutate_data().unwrap(); + recalc_style_at(self, traversal_data, context, el, &mut data, note_child); el.unset_dirty_descendants(); } } } + #[inline] + fn needs_postorder_traversal() -> bool { + false + } + + fn process_postorder(&self, _style_context: &mut StyleContext<E>, _node: E::ConcreteNode) { + panic!("this should never be called") + } + fn text_node_needs_traversal(node: E::ConcreteNode, parent_data: &ElementData) -> bool { node.get_style_and_layout_data().is_none() || !parent_data.damage.is_empty() } |