Index: components/rappor/byte_vector_utils.cc |
diff --git a/components/rappor/byte_vector_utils.cc b/components/rappor/byte_vector_utils.cc |
index 57f25744566d19056f3b1cd511789f467a773e2a..23d925c2e31af126d4498f7d9b5be14445f4f6cc 100644 |
--- a/components/rappor/byte_vector_utils.cc |
+++ b/components/rappor/byte_vector_utils.cc |
@@ -78,6 +78,14 @@ bool HMAC_DRBG_Update(const std::string& provided_data, |
} // namespace |
+ByteVector* ByteVectorAnd(const ByteVector& lhs, ByteVector* rhs) { |
+ DCHECK_EQ(lhs.size(), rhs->size()); |
+ for (size_t i = 0, len = lhs.size(); i < len; ++i) { |
Alexei Svitkine (slow)
2014/05/20 06:59:49
Nit: Remove len and just do i < lhs.size(). (Compi
Steven Holte
2014/05/20 22:53:53
Done.
|
+ (*rhs)[i] = lhs[i] & (*rhs)[i]; |
+ } |
+ return rhs; |
+} |
+ |
ByteVector* ByteVectorOr(const ByteVector& lhs, ByteVector* rhs) { |
DCHECK_EQ(lhs.size(), rhs->size()); |
for (size_t i = 0, len = lhs.size(); i < len; ++i) { |
@@ -127,6 +135,8 @@ ByteVector ByteVectorGenerator::GetWeightedRandomByteVector( |
return *ByteVectorOr(GetRandomByteVector(), &bytes); |
case PROBABILITY_50: |
return bytes; |
+ case PROBABILITY_25: |
+ return *ByteVectorAnd(GetRandomByteVector(), &bytes); |
} |
NOTREACHED(); |
return bytes; |