Index: base/metrics/histogram_samples.cc |
diff --git a/base/metrics/histogram_samples.cc b/base/metrics/histogram_samples.cc |
index 9e86a65258d1010a5b629163f56108e6f7e0748f..59f38fc8ab5c24bcc2350b2636a97f56e5a889cf 100644 |
--- a/base/metrics/histogram_samples.cc |
+++ b/base/metrics/histogram_samples.cc |
@@ -7,6 +7,7 @@ |
#include <limits> |
#include "base/compiler_specific.h" |
+#include "base/numerics/safe_conversions.h" |
#include "base/numerics/safe_math.h" |
#include "base/pickle.h" |
@@ -31,14 +32,14 @@ class SampleCountPickleIterator : public SampleCountIterator { |
bool Done() const override; |
void Next() override; |
void Get(HistogramBase::Sample* min, |
- HistogramBase::Sample* max, |
+ int64_t* max, |
HistogramBase::Count* count) const override; |
private: |
PickleIterator* const iter_; |
HistogramBase::Sample min_; |
- HistogramBase::Sample max_; |
+ int64_t max_; |
HistogramBase::Count count_; |
bool is_done_; |
}; |
@@ -55,14 +56,14 @@ bool SampleCountPickleIterator::Done() const { |
void SampleCountPickleIterator::Next() { |
DCHECK(!Done()); |
- if (!iter_->ReadInt(&min_) || |
- !iter_->ReadInt(&max_) || |
- !iter_->ReadInt(&count_)) |
+ if (!iter_->ReadInt(&min_) || !iter_->ReadInt64(&max_) || |
+ !iter_->ReadInt(&count_)) { |
is_done_ = true; |
+ } |
} |
void SampleCountPickleIterator::Get(HistogramBase::Sample* min, |
- HistogramBase::Sample* max, |
+ int64_t* max, |
HistogramBase::Count* count) const { |
DCHECK(!Done()); |
*min = min_; |
@@ -220,15 +221,15 @@ bool HistogramSamples::Serialize(Pickle* pickle) const { |
return false; |
HistogramBase::Sample min; |
- HistogramBase::Sample max; |
+ int64_t max; |
HistogramBase::Count count; |
for (std::unique_ptr<SampleCountIterator> it = Iterator(); !it->Done(); |
it->Next()) { |
it->Get(&min, &max, &count); |
- if (!pickle->WriteInt(min) || |
- !pickle->WriteInt(max) || |
- !pickle->WriteInt(count)) |
+ if (!pickle->WriteInt(min) || !pickle->WriteInt64(max) || |
+ !pickle->WriteInt(count)) { |
return false; |
+ } |
} |
return true; |
} |
@@ -238,7 +239,7 @@ bool HistogramSamples::AccumulateSingleSample(HistogramBase::Sample value, |
size_t bucket) { |
if (single_sample().Accumulate(bucket, count)) { |
// Success. Update the (separate) sum and redundant-count. |
- IncreaseSumAndCount(static_cast<int64_t>(value) * count, count); |
+ IncreaseSumAndCount(strict_cast<int64_t>(value) * count, count); |
return true; |
} |
return false; |
@@ -262,12 +263,12 @@ bool SampleCountIterator::GetBucketIndex(size_t* index) const { |
} |
SingleSampleIterator::SingleSampleIterator(HistogramBase::Sample min, |
- HistogramBase::Sample max, |
+ int64_t max, |
HistogramBase::Count count) |
: SingleSampleIterator(min, max, count, kSizeMax) {} |
SingleSampleIterator::SingleSampleIterator(HistogramBase::Sample min, |
- HistogramBase::Sample max, |
+ int64_t max, |
HistogramBase::Count count, |
size_t bucket_index) |
: min_(min), max_(max), bucket_index_(bucket_index), count_(count) {} |
@@ -284,7 +285,7 @@ void SingleSampleIterator::Next() { |
} |
void SingleSampleIterator::Get(HistogramBase::Sample* min, |
- HistogramBase::Sample* max, |
+ int64_t* max, |
HistogramBase::Count* count) const { |
DCHECK(!Done()); |
if (min != nullptr) |