diff options
author | Bobby Holley <bobbyholley@gmail.com> | 2017-07-12 17:46:21 -0700 |
---|---|---|
committer | Bobby Holley <bobbyholley@gmail.com> | 2017-07-15 14:45:51 -0700 |
commit | b7de96e7025c7336ff34ec779d3dfceb268d647d (patch) | |
tree | 3e55ab7b0f5cffaf6c1cb3828e4e354602e4415c /components/style/sequential.rs | |
parent | e534ec9e47a5c4b1b53085925266529b5989da8d (diff) | |
download | servo-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.rs | 12 |
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); |