Index: base/metrics/histogram.cc |
diff --git a/base/metrics/histogram.cc b/base/metrics/histogram.cc |
index ec1afddcca70668390cacd12bf23e2c40f2e84fe..2ccedc1b4d47cd23354061b53fa24b0cee27bb3f 100644 |
--- a/base/metrics/histogram.cc |
+++ b/base/metrics/histogram.cc |
@@ -174,17 +174,6 @@ void Histogram::InitializeBucketRanges(Sample minimum, |
ranges->ResetChecksum(); |
} |
-void Histogram::Add(int value) { |
- DCHECK_EQ(0, ranges(0)); |
- DCHECK_EQ(kSampleType_MAX, ranges(bucket_count_)); |
- |
- if (value > kSampleType_MAX - 1) |
- value = kSampleType_MAX - 1; |
- if (value < 0) |
- value = 0; |
- samples_->Accumulate(value, 1); |
-} |
- |
void Histogram::AddBoolean(bool value) { |
DCHECK(false); |
} |
@@ -201,18 +190,6 @@ void Histogram::SetRangeDescriptions(const DescriptionPair descriptions[]) { |
DCHECK(false); |
} |
-// The following methods provide a graphical histogram display. |
-void Histogram::WriteHTMLGraph(string* output) const { |
- // TBD(jar) Write a nice HTML bar chart, with divs an mouse-overs etc. |
- output->append("<PRE>"); |
- WriteAsciiImpl(true, "<br>", output); |
- output->append("</PRE>"); |
-} |
- |
-void Histogram::WriteAscii(string* output) const { |
- WriteAsciiImpl(true, "\n", output); |
-} |
- |
// static |
string Histogram::SerializeHistogramInfo(const Histogram& histogram, |
const HistogramSamples& snapshot) { |
@@ -367,17 +344,69 @@ size_t Histogram::bucket_count() const { |
return bucket_count_; |
} |
-scoped_ptr<HistogramSamples> Histogram::SnapshotSamples() const { |
- return SnapshotSampleVector().PassAs<HistogramSamples>(); |
+// static |
+bool Histogram::InspectConstructionArguments(const string& name, |
+ Sample* minimum, |
+ Sample* maximum, |
+ size_t* bucket_count) { |
+ // Defensive code for backward compatibility. |
+ if (*minimum < 1) { |
+ DVLOG(1) << "Histogram: " << name << " has bad minimum: " << *minimum; |
+ *minimum = 1; |
+ } |
+ if (*maximum >= kSampleType_MAX) { |
+ DVLOG(1) << "Histogram: " << name << " has bad maximum: " << *maximum; |
+ *maximum = kSampleType_MAX - 1; |
+ } |
+ if (*bucket_count >= kBucketCount_MAX) { |
+ DVLOG(1) << "Histogram: " << name << " has bad bucket_count: " |
+ << *bucket_count; |
+ *bucket_count = kBucketCount_MAX - 1; |
+ } |
+ |
+ if (*minimum >= *maximum) |
+ return false; |
+ if (*bucket_count < 3) |
+ return false; |
+ if (*bucket_count > static_cast<size_t>(*maximum - *minimum + 2)) |
+ return false; |
+ return true; |
} |
bool Histogram::HasConstructionArguments(Sample minimum, |
Sample maximum, |
- size_t bucket_count) { |
+ size_t bucket_count) const { |
return ((minimum == declared_min_) && (maximum == declared_max_) && |
(bucket_count == bucket_count_)); |
} |
+void Histogram::Add(int value) { |
+ DCHECK_EQ(0, ranges(0)); |
+ DCHECK_EQ(kSampleType_MAX, ranges(bucket_count_)); |
+ |
+ if (value > kSampleType_MAX - 1) |
+ value = kSampleType_MAX - 1; |
+ if (value < 0) |
+ value = 0; |
+ samples_->Accumulate(value, 1); |
+} |
+ |
+scoped_ptr<HistogramSamples> Histogram::SnapshotSamples() const { |
+ return SnapshotSampleVector().PassAs<HistogramSamples>(); |
+} |
+ |
+// The following methods provide a graphical histogram display. |
+void Histogram::WriteHTMLGraph(string* output) const { |
+ // TBD(jar) Write a nice HTML bar chart, with divs an mouse-overs etc. |
+ output->append("<PRE>"); |
+ WriteAsciiImpl(true, "<br>", output); |
+ output->append("</PRE>"); |
+} |
+ |
+void Histogram::WriteAscii(string* output) const { |
+ WriteAsciiImpl(true, "\n", output); |
+} |
+ |
Histogram::Histogram(const string& name, |
Sample minimum, |
Sample maximum, |
@@ -400,35 +429,6 @@ Histogram::~Histogram() { |
} |
} |
-// static |
-bool Histogram::InspectConstructionArguments(const string& name, |
- Sample* minimum, |
- Sample* maximum, |
- size_t* bucket_count) { |
- // Defensive code for backward compatibility. |
- if (*minimum < 1) { |
- DVLOG(1) << "Histogram: " << name << " has bad minimum: " << *minimum; |
- *minimum = 1; |
- } |
- if (*maximum >= kSampleType_MAX) { |
- DVLOG(1) << "Histogram: " << name << " has bad maximum: " << *maximum; |
- *maximum = kSampleType_MAX - 1; |
- } |
- if (*bucket_count >= kBucketCount_MAX) { |
- DVLOG(1) << "Histogram: " << name << " has bad bucket_count: " |
- << *bucket_count; |
- *bucket_count = kBucketCount_MAX - 1; |
- } |
- |
- if (*minimum >= *maximum) |
- return false; |
- if (*bucket_count < 3) |
- return false; |
- if (*bucket_count > static_cast<size_t>(*maximum - *minimum + 2)) |
- return false; |
- return true; |
-} |
- |
bool Histogram::SerializeRanges(Pickle* pickle) const { |
return true; |
} |