diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2017-06-15 20:28:56 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-15 20:28:56 -0700 |
commit | 33766b2714443399808c950e5bb74b1f124f2bc4 (patch) | |
tree | e55725db70e6f70b0d8d139097ca42646f021c14 /components/style/sharing/mod.rs | |
parent | e3a52536b650f4aeb951b474936a0b67821f112e (diff) | |
parent | ffc45e9aaa59d5540c5f0480fbe13f48658ec593 (diff) | |
download | servo-33766b2714443399808c950e5bb74b1f124f2bc4.tar.gz servo-33766b2714443399808c950e5bb74b1f124f2bc4.zip |
Auto merge of #17348 - emilio:bup, r=bholley
style: Inline RestyleData.
Bug: 1368236
MozReview-Commit-ID: 49s3SO0PMHf
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/17348)
<!-- Reviewable:end -->
Diffstat (limited to 'components/style/sharing/mod.rs')
-rw-r--r-- | components/style/sharing/mod.rs | 55 |
1 files changed, 26 insertions, 29 deletions
diff --git a/components/style/sharing/mod.rs b/components/style/sharing/mod.rs index 5971eb34367..a1cedbd4b73 100644 --- a/components/style/sharing/mod.rs +++ b/components/style/sharing/mod.rs @@ -377,38 +377,38 @@ impl<E: TElement> StyleSharingTarget<E> { // We used to have pseudos (because we had styles). // Check for damage from the set of pseudos changing or // pseudos being restyled. - let (styles, restyle_data) = data.styles_and_restyle_mut(); - if let Some(restyle_data) = restyle_data { - let old_pseudos = &styles.pseudos; - let new_pseudos = &shared_style.pseudos; - if !old_pseudos.has_same_pseudos_as(new_pseudos) { - restyle_data.damage |= RestyleDamage::reconstruct(); - } else { - // It's a bit unfortunate that we have to keep - // mapping PseudoElements back to indices - // here.... - for pseudo in old_pseudos.keys() { - let old_values = - old_pseudos.get(&pseudo).unwrap().values.as_ref().map(|v| &**v); - let new_values = - new_pseudos.get(&pseudo).unwrap().values(); - self.element.accumulate_damage( - &shared_context, - Some(restyle_data), - old_values, - new_values, - Some(&pseudo) - ); - } + let (styles, mut restyle_data) = data.styles_and_restyle_mut(); + let old_pseudos = &styles.pseudos; + let new_pseudos = &shared_style.pseudos; + + if !old_pseudos.has_same_pseudos_as(new_pseudos) { + restyle_data.damage |= RestyleDamage::reconstruct(); + } else { + // It's a bit unfortunate that we have to keep + // mapping PseudoElements back to indices + // here.... + for pseudo in old_pseudos.keys() { + let old_values = + old_pseudos.get(&pseudo).unwrap().values.as_ref().map(|v| &**v); + let new_values = + new_pseudos.get(&pseudo).unwrap().values(); + self.element.accumulate_damage( + &shared_context, + restyle_data, + old_values, + new_values, + Some(&pseudo) + ); } } } - let old_values = data.get_styles_mut() - .and_then(|s| s.primary.values.take()); + let old_values = + data.get_styles_mut().and_then(|s| s.primary.values.take()); + self.element.accumulate_damage( &shared_context, - data.get_restyle_mut(), + &mut data.restyle, old_values.as_ref().map(|v| &**v), shared_style.primary.values(), None @@ -597,9 +597,6 @@ impl<E: TElement> StyleSharingCandidateCache<E> { match sharing_result { Ok(shared_style) => { // Yay, cache hit. Share the style. - - debug_assert_eq!(data.has_styles(), data.has_restyle()); - let child_cascade_requirement = target.accumulate_damage_when_sharing(shared_context, &shared_style, |