From 7ee4b3f881dcb11238c0400a2c02d5d19be87b4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Mon, 7 Aug 2017 10:47:12 +0200 Subject: [PATCH] style: Avoid branching on the origin for each selector when inserting in the cascade data. This is on top of #17990, and it's intended to help with bug 1386045. --- components/style/stylist.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/components/style/stylist.rs b/components/style/stylist.rs index 636f0646ce57..f0b2dcc462c0 100644 --- a/components/style/stylist.rs +++ b/components/style/stylist.rs @@ -458,6 +458,10 @@ impl Stylist { self.effective_media_query_results.saw_effective(stylesheet); let origin = stylesheet.origin(guard); + + let origin_cascade_data = + self.cascade_data.borrow_mut_for_origin(&origin); + for rule in stylesheet.effective_rules(&self.device, guard) { match *rule { CssRule::Style(ref locked) => { @@ -469,8 +473,7 @@ impl Stylist { let hashes = AncestorHashes::new(&selector, self.quirks_mode); - self.cascade_data - .borrow_mut_for_origin(&origin) + origin_cascade_data .borrow_mut_for_pseudo_or_insert(selector.pseudo_element()) .insert( Rule::new(selector.clone(),