aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2016-10-10 11:39:06 -0500
committerGitHub <noreply@github.com>2016-10-10 11:39:06 -0500
commitef7423bf0034a41b12ba50e623c9b3dba39a53bc (patch)
tree7a401837d0d3d4e2c69baec48a840574e1e7aee0
parentaef6054dc64043860e90ca962b60c51c683789f2 (diff)
parent33c7915032d023c300a3207ce205334c125e4e71 (diff)
downloadservo-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.rs14
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)
}