Bug 1388748 - Don't resize histogram ranges on init r?gfritzsche draft
authorDoug Thayer <dothayer@mozilla.com>
Wed, 09 Aug 2017 10:21:09 -0700
changeset 644390 5135b04e6f27c700d25e4914234b5d52d3d4ed0e
parent 643173 4c5fbf49376351679dcc49f4cff26c3c2e055ccc
child 725601 b35287b50985f8dc6abec4c41e503ac966ed7f72
push id73430
push userbmo:dothayer@mozilla.com
push dateThu, 10 Aug 2017 22:49:29 +0000
reviewersgfritzsche
bugs1388748
milestone57.0a1
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
ipc/chromium/src/base/histogram.cc
--- 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;
 }