aboutsummaryrefslogtreecommitdiffstats
path: root/components/style/sequential.rs
diff options
context:
space:
mode:
authorBobby Holley <bobbyholley@gmail.com>2017-07-12 17:46:21 -0700
committerBobby Holley <bobbyholley@gmail.com>2017-07-15 14:45:51 -0700
commitb7de96e7025c7336ff34ec779d3dfceb268d647d (patch)
tree3e55ab7b0f5cffaf6c1cb3828e4e354602e4415c /components/style/sequential.rs
parente534ec9e47a5c4b1b53085925266529b5989da8d (diff)
downloadservo-b7de96e7025c7336ff34ec779d3dfceb268d647d.tar.gz
servo-b7de96e7025c7336ff34ec779d3dfceb268d647d.zip
Pass a callback to recalc_style_at to avoid traversing children twice.
MozReview-Commit-ID: DIHXaVNzbFM
Diffstat (limited to 'components/style/sequential.rs')
-rw-r--r--components/style/sequential.rs12
1 files changed, 4 insertions, 8 deletions
diff --git a/components/style/sequential.rs b/components/style/sequential.rs
index 49bb3bb0c4f..3e06db02ac0 100644
--- a/components/style/sequential.rs
+++ b/components/style/sequential.rs
@@ -52,14 +52,10 @@ pub fn traverse_dom<E, D>(traversal: &D,
while let Some(WorkItem(node, depth)) = discovered.pop_front() {
let mut children_to_process = 0isize;
let traversal_data = PerLevelTraversalData { current_dom_depth: depth };
- traversal.process_preorder(&traversal_data, &mut context, node);
-
- if let Some(el) = node.as_element() {
- traversal.traverse_children(&mut context, el, |_context, kid| {
- children_to_process += 1;
- discovered.push_back(WorkItem(kid, depth + 1))
- });
- }
+ traversal.process_preorder(&traversal_data, &mut context, node, |n| {
+ children_to_process += 1;
+ discovered.push_back(WorkItem(n, depth + 1));
+ });
traversal.handle_postorder_traversal(&mut context, root.as_node().opaque(),
node, children_to_process);