Bug 1388748 - Don't resize histogram ranges on init r?gfritzsche
We were using std::vector::assign, which resizes the vector to
match the incoming data. This isn't what we want, as ranges_ has
already been sized to bucket_count_ + 1. Instead, just use a
copy.
MozReview-Commit-ID: EGuW5jj7Rpq
--- a/ipc/chromium/src/base/histogram.cc
+++ b/ipc/chromium/src/base/histogram.cc
@@ -268,17 +268,18 @@ Histogram::Histogram(TimeDelta minimum,
}
Histogram::~Histogram() {
// Just to make sure most derived class did this properly...
DCHECK(ValidateBucketRanges());
}
void Histogram::InitializeBucketRangeFromData(const int* buckets) {
- ranges_.assign(buckets, buckets + bucket_count());
+ DCHECK_EQ(bucket_count_ + 1, ranges_.size());
+ std::copy_n(buckets, bucket_count_, ranges_.data());
ResetRangeChecksum();
DCHECK(ValidateBucketRanges());
}
bool Histogram::PrintEmptyBucket(size_t index) const {
return true;
}