aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnthony Ramine <nox@nox.paris>2020-04-06 12:40:05 +0200
committerAnthony Ramine <nox@nox.paris>2020-04-06 12:40:05 +0200
commit88d79fe46d51a1d5416a1c09b795f089d0b4899a (patch)
treeee581a78d191dc2beeda338323f93111efe738a6
parente3be136c9b9d44ed0977780de8e8a8b17e279460 (diff)
downloadservo-88d79fe46d51a1d5416a1c09b795f089d0b4899a.tar.gz
servo-88d79fe46d51a1d5416a1c09b795f089d0b4899a.zip
Remove postorder traversal from layout 2020 during styling
-rw-r--r--components/layout_2020/traversal.rs27
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()
}