| Index: components/rappor/bloom_filter.cc
|
| diff --git a/components/rappor/bloom_filter.cc b/components/rappor/bloom_filter.cc
|
| index 9ad8f3ca0ce9d68191e8896229dbf3d44c2e1fcc..506ff54ba2aaa9c516e4e01d52948375db36e97e 100644
|
| --- a/components/rappor/bloom_filter.cc
|
| +++ b/components/rappor/bloom_filter.cc
|
| @@ -9,38 +9,29 @@
|
|
|
| namespace rappor {
|
|
|
| -BloomFilter::BloomFilter(uint32_t bytes_size,
|
| - uint32_t hash_function_count,
|
| - uint32_t hash_seed_offset)
|
| - : bytes_(bytes_size),
|
| - hash_function_count_(hash_function_count),
|
| - hash_seed_offset_(hash_seed_offset) {
|
| - DCHECK_GT(bytes_size, 0u);
|
| -}
|
| -
|
| -BloomFilter::~BloomFilter() {}
|
| -
|
| -void BloomFilter::SetString(const std::string& str) {
|
| - for (size_t i = 0; i < bytes_.size(); ++i) {
|
| - bytes_[i] = 0;
|
| +namespace internal {
|
| +
|
| +void SetBloomBits(uint32_t bytes_size,
|
| + uint32_t hash_function_count,
|
| + uint32_t hash_seed_offset,
|
| + const std::string& str,
|
| + ByteVector* output) {
|
| + DCHECK_GE(output->size(), bytes_size);
|
| + for (size_t i = 0; i < bytes_size; ++i) {
|
| + (*output)[i] = 0;
|
| }
|
| - for (size_t i = 0; i < hash_function_count_; ++i) {
|
| + for (size_t i = 0; i < hash_function_count; ++i) {
|
| // Using CityHash here because we have support for it in Dremel. Many hash
|
| // functions, such as MD5, SHA1, or Murmur, would probably also work.
|
| uint32_t index =
|
| - CityHash64WithSeed(str.data(), str.size(), hash_seed_offset_ + i);
|
| + CityHash64WithSeed(str.data(), str.size(), hash_seed_offset + i);
|
| // Note that the "bytes" are uint8_t, so they are always 8-bits.
|
| - uint32_t byte_index = (index / 8) % bytes_.size();
|
| + uint32_t byte_index = (index / 8) % bytes_size;
|
| uint32_t bit_index = index % 8;
|
| - bytes_[byte_index] |= 1 << bit_index;
|
| + (*output)[byte_index] |= 1 << bit_index;
|
| }
|
| }
|
|
|
| -void BloomFilter::SetBytesForTesting(const ByteVector& bytes) {
|
| - DCHECK_EQ(bytes_.size(), bytes.size());
|
| - for (size_t i = 0; i < bytes_.size(); ++i) {
|
| - bytes_[i] = bytes[i];
|
| - }
|
| -}
|
| +} // namespace internal
|
|
|
| } // namespace rappor
|
|
|