From 351c7f785953c9ae75aaf8d3aada4eb8751631db Mon Sep 17 00:00:00 2001 From: Boris Zbarsky Date: Thu, 29 Jun 2017 16:20:47 -0700 Subject: [PATCH] Change lazily_compute_pseudo_element_style to take an &Arc for the parent style. This makes it easier to do later changes that want to pass an Arc here. Part 1 of the fix for Gecko bug 1364242: https://bugzilla.mozilla.org/show_bug.cgi?id=1364242 --- components/style/stylist.rs | 2 +- ports/geckolib/glue.rs | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/components/style/stylist.rs b/components/style/stylist.rs index f398d0f16c9..533ded9ec4e 100644 --- a/components/style/stylist.rs +++ b/components/style/stylist.rs @@ -679,7 +679,7 @@ impl Stylist { element: &E, pseudo: &PseudoElement, rule_inclusion: RuleInclusion, - parent_style: &ComputedValues, + parent_style: &Arc, font_metrics: &FontMetricsProvider) -> Option> where E: TElement, diff --git a/ports/geckolib/glue.rs b/ports/geckolib/glue.rs index 2295e01b6ce..d925584687f 100644 --- a/ports/geckolib/glue.rs +++ b/ports/geckolib/glue.rs @@ -1479,7 +1479,7 @@ pub extern "C" fn Servo_ResolvePseudoStyle(element: RawGeckoElementBorrowed, &pseudo, RuleInclusion::All, &data.styles, - ComputedValues::arc_from_borrowed(&inherited_style).map(|v| v.as_ref()), + ComputedValues::arc_from_borrowed(&inherited_style), &*doc_data, is_probe ); @@ -1533,7 +1533,7 @@ fn get_pseudo_style( pseudo: &PseudoElement, rule_inclusion: RuleInclusion, styles: &ElementStyles, - inherited_styles: Option<&ComputedValues>, + inherited_styles: Option<&Arc>, doc_data: &PerDocumentStyleDataImpl, is_probe: bool, ) -> Option> { @@ -1563,7 +1563,7 @@ fn get_pseudo_style( }, _ => { debug_assert!(inherited_styles.is_none() || - ptr::eq(inherited_styles.unwrap(), + ptr::eq(&**inherited_styles.unwrap(), &**styles.primary())); styles.pseudos.get(&pseudo).cloned() }, @@ -1572,7 +1572,7 @@ fn get_pseudo_style( PseudoElementCascadeType::Precomputed => unreachable!("No anonymous boxes"), PseudoElementCascadeType::Lazy => { debug_assert!(inherited_styles.is_none() || - ptr::eq(inherited_styles.unwrap(), + ptr::eq(&**inherited_styles.unwrap(), &**styles.primary())); let base = if pseudo.inherits_from_default_values() { doc_data.default_computed_values()