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/gecko/traversal.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/gecko/traversal.rs')
-rw-r--r-- | components/style/gecko/traversal.rs | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/components/style/gecko/traversal.rs b/components/style/gecko/traversal.rs index 9b0770318ce..98a587f1919 100644 --- a/components/style/gecko/traversal.rs +++ b/components/style/gecko/traversal.rs @@ -5,7 +5,7 @@ //! Gecko-specific bits for the styling DOM traversal. use context::{SharedStyleContext, StyleContext}; -use dom::{NodeInfo, TNode, TElement}; +use dom::{TNode, TElement}; use gecko::wrapper::{GeckoElement, GeckoNode}; use traversal::{DomTraversal, PerLevelTraversalData, TraversalDriver, recalc_style_at}; @@ -27,15 +27,16 @@ impl<'a> RecalcStyleOnly<'a> { } impl<'recalc, 'le> DomTraversal<GeckoElement<'le>> for RecalcStyleOnly<'recalc> { - fn process_preorder(&self, - traversal_data: &PerLevelTraversalData, - context: &mut StyleContext<GeckoElement<'le>>, - node: GeckoNode<'le>) + fn process_preorder<F>(&self, + traversal_data: &PerLevelTraversalData, + context: &mut StyleContext<GeckoElement<'le>>, + node: GeckoNode<'le>, + note_child: F) + where F: FnMut(GeckoNode<'le>), { - if node.is_element() { - let el = node.as_element().unwrap(); + if let Some(el) = node.as_element() { let mut data = unsafe { el.ensure_data() }; - recalc_style_at(self, traversal_data, context, el, &mut data); + recalc_style_at(self, traversal_data, context, el, &mut data, note_child); } } |