Auto merge of #18011 - emilio:less-dumb-hash, r=nox

style: Avoid hashing hashes.

These are the last instances I can find of us hashing the atoms hash.

<!-- 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/18011)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2017-08-08 10:06:32 -05:00 committed by GitHub
commit dec4ba8ea6
2 changed files with 7 additions and 7 deletions

View file

@ -7,7 +7,6 @@
use Atom;
use atomic_refcell::{AtomicRef, AtomicRefCell, AtomicRefMut};
use dom::TElement;
use fnv::FnvHashMap;
use gecko::rules::{CounterStyleRule, FontFaceRule};
use gecko_bindings::bindings::{self, RawServoStyleSet};
use gecko_bindings::structs::{ServoStyleSheet, StyleSheetInfo, ServoStyleSheetInner};
@ -17,6 +16,7 @@ use gecko_bindings::sugar::ownership::{HasArcFFI, HasBoxFFI, HasFFI, HasSimpleFF
use invalidation::media_queries::{MediaListKey, ToMediaListKey};
use media_queries::{Device, MediaList};
use properties::ComputedValues;
use selector_map::PrecomputedHashMap;
use servo_arc::Arc;
use shared_lock::{Locked, StylesheetGuards, SharedRwLockReadGuard};
use stylesheet_set::StylesheetSet;
@ -124,7 +124,7 @@ pub struct PerDocumentStyleDataImpl {
pub font_faces: Vec<(Arc<Locked<FontFaceRule>>, Origin)>,
/// Map for effective counter style rules.
pub counter_styles: FnvHashMap<Atom, Arc<Locked<CounterStyleRule>>>,
pub counter_styles: PrecomputedHashMap<Atom, Arc<Locked<CounterStyleRule>>>,
}
/// The data itself is an `AtomicRefCell`, which guarantees the proper semantics
@ -143,7 +143,7 @@ impl PerDocumentStyleData {
stylist: Stylist::new(device, quirks_mode.into()),
stylesheets: StylesheetSet::new(),
font_faces: vec![],
counter_styles: FnvHashMap::default(),
counter_styles: PrecomputedHashMap::default(),
}))
}

View file

@ -22,7 +22,7 @@ use properties::{AnimationRules, PropertyDeclarationBlock};
use properties::INHERIT_ALL;
use properties::IS_LINK;
use rule_tree::{CascadeLevel, RuleTree, StyleSource};
use selector_map::{SelectorMap, SelectorMapEntry};
use selector_map::{PrecomputedHashMap, SelectorMap, SelectorMapEntry};
use selector_parser::{SelectorImpl, PerPseudoElementMap, PseudoElement};
use selectors::attr::NamespaceConstraint;
use selectors::bloom::BloomFilter;
@ -98,7 +98,7 @@ pub struct Stylist {
rule_tree: RuleTree,
/// A map with all the animations indexed by name.
animations: FnvHashMap<Atom, KeyframesAnimation>,
animations: PrecomputedHashMap<Atom, KeyframesAnimation>,
/// Applicable declarations for a given non-eagerly cascaded pseudo-element.
/// These are eagerly computed once, and then used to resolve the new
@ -168,7 +168,7 @@ pub struct ExtraStyleData<'a> {
/// A list of effective font-face rules and their origin.
pub font_faces: &'a mut Vec<(Arc<Locked<FontFaceRule>>, Origin)>,
/// A map of effective counter-style rules.
pub counter_styles: &'a mut FnvHashMap<Atom, Arc<Locked<CounterStyleRule>>>,
pub counter_styles: &'a mut PrecomputedHashMap<Atom, Arc<Locked<CounterStyleRule>>>,
}
#[cfg(feature = "gecko")]
@ -1329,7 +1329,7 @@ impl Stylist {
/// Returns the map of registered `@keyframes` animations.
#[inline]
pub fn animations(&self) -> &FnvHashMap<Atom, KeyframesAnimation> {
pub fn animations(&self) -> &PrecomputedHashMap<Atom, KeyframesAnimation> {
&self.animations
}