aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/cssgroupingrule.rs
diff options
context:
space:
mode:
authorSimon Sapin <simon.sapin@exyr.org>2016-11-28 16:33:47 +0100
committerSimon Sapin <simon.sapin@exyr.org>2016-11-28 16:50:38 +0100
commitf1d49d3773846a65cb403af4e041660fad3117be (patch)
treeae2fde379903ccffe40c7629a4027e25c9a783d7 /components/script/dom/cssgroupingrule.rs
parent0714e2291cbb0ff888f817dd75414882e9309e8f (diff)
downloadservo-f1d49d3773846a65cb403af4e041660fad3117be.tar.gz
servo-f1d49d3773846a65cb403af4e041660fad3117be.zip
Make CSSRule always keep a pointer to its parent stylesheet
even when the parentStylesheet IDL attribute returns null.
Diffstat (limited to 'components/script/dom/cssgroupingrule.rs')
-rw-r--r--components/script/dom/cssgroupingrule.rs14
1 files changed, 6 insertions, 8 deletions
diff --git a/components/script/dom/cssgroupingrule.rs b/components/script/dom/cssgroupingrule.rs
index cd55cd358b6..aa381dcbaec 100644
--- a/components/script/dom/cssgroupingrule.rs
+++ b/components/script/dom/cssgroupingrule.rs
@@ -4,7 +4,6 @@
use dom::bindings::codegen::Bindings::CSSGroupingRuleBinding;
use dom::bindings::codegen::Bindings::CSSGroupingRuleBinding::CSSGroupingRuleMethods;
-use dom::bindings::codegen::Bindings::CSSRuleBinding::CSSRuleBinding::CSSRuleMethods;
use dom::bindings::error::{ErrorResult, Fallible};
use dom::bindings::inheritance::Castable;
use dom::bindings::js::{JS, MutNullableHeap, Root};
@@ -25,27 +24,26 @@ pub struct CSSGroupingRule {
}
impl CSSGroupingRule {
- pub fn new_inherited(parent: Option<&CSSStyleSheet>,
+ pub fn new_inherited(parent_stylesheet: &CSSStyleSheet,
rules: StyleCssRules) -> CSSGroupingRule {
CSSGroupingRule {
- cssrule: CSSRule::new_inherited(parent),
+ cssrule: CSSRule::new_inherited(parent_stylesheet),
rules: rules,
rulelist: MutNullableHeap::new(None),
}
}
#[allow(unrooted_must_root)]
- pub fn new(window: &Window, parent: Option<&CSSStyleSheet>, rules: StyleCssRules) -> Root<CSSGroupingRule> {
- reflect_dom_object(box CSSGroupingRule::new_inherited(parent, rules),
+ pub fn new(window: &Window, parent_stylesheet: &CSSStyleSheet, rules: StyleCssRules) -> Root<CSSGroupingRule> {
+ reflect_dom_object(box CSSGroupingRule::new_inherited(parent_stylesheet, rules),
window,
CSSGroupingRuleBinding::Wrap)
}
fn rulelist(&self) -> Root<CSSRuleList> {
- let sheet = self.upcast::<CSSRule>().GetParentStyleSheet();
- let sheet = sheet.as_ref().map(|s| &**s);
+ let parent_stylesheet = self.upcast::<CSSRule>().parent_stylesheet();
self.rulelist.or_init(|| CSSRuleList::new(self.global().as_window(),
- sheet,
+ parent_stylesheet,
RulesSource::Rules(self.rules.clone())))
}
}