diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-10-10 11:39:06 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-10 11:39:06 -0500 |
commit | ef7423bf0034a41b12ba50e623c9b3dba39a53bc (patch) | |
tree | 7a401837d0d3d4e2c69baec48a840574e1e7aee0 | |
parent | aef6054dc64043860e90ca962b60c51c683789f2 (diff) | |
parent | 33c7915032d023c300a3207ce205334c125e4e71 (diff) | |
download | servo-ef7423bf0034a41b12ba50e623c9b3dba39a53bc.tar.gz servo-ef7423bf0034a41b12ba50e623c9b3dba39a53bc.zip |
Auto merge of #13676 - servo:no-siphasher, r=pcwalton
Remove usage of deprecated `SipHasher`.
<!-- Please describe your changes on the following line: -->
<s>Hashing in `SimpleHashCache` is not randomized anymore. Does this matter?</s>
r? @pcwalton
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because _____
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
<!-- 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/13676)
<!-- Reviewable:end -->
-rw-r--r-- | components/style/cache.rs | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/components/style/cache.rs b/components/style/cache.rs index 9fb3f5b27f6..b4bac98992f 100644 --- a/components/style/cache.rs +++ b/components/style/cache.rs @@ -4,9 +4,8 @@ //! Two simple cache data structures. -use rand; -use rand::Rng; -use std::hash::{Hash, Hasher, SipHasher}; +use std::collections::hash_map::RandomState; +use std::hash::{Hash, Hasher, BuildHasher}; use std::slice::{Iter, IterMut}; pub struct LRUCache<K, V> { @@ -72,17 +71,14 @@ impl<K: PartialEq, V: Clone> LRUCache<K, V> { pub struct SimpleHashCache<K, V> { entries: Vec<Option<(K, V)>>, - k0: u64, - k1: u64, + random: RandomState, } impl<K: Clone + Eq + Hash, V: Clone> SimpleHashCache<K, V> { pub fn new(cache_size: usize) -> SimpleHashCache<K, V> { - let mut r = rand::thread_rng(); SimpleHashCache { entries: vec![None; cache_size], - k0: r.gen(), - k1: r.gen(), + random: RandomState::new(), } } @@ -93,7 +89,7 @@ impl<K: Clone + Eq + Hash, V: Clone> SimpleHashCache<K, V> { #[inline] fn bucket_for_key<Q: Hash>(&self, key: &Q) -> usize { - let mut hasher = SipHasher::new_with_keys(self.k0, self.k1); + let mut hasher = self.random.build_hasher(); key.hash(&mut hasher); self.to_bucket(hasher.finish() as usize) } |