summaryrefslogtreecommitdiffstats
path: root/base
diff options
context:
space:
mode:
authorjar@chromium.org <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-25 15:55:15 +0000
committerjar@chromium.org <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-25 15:55:15 +0000
commitf2bc0cb52453bbca0c9b998994de8674f8a1e874 (patch)
tree5de676608035f4ace623512767c67d7b6a730a20 /base
parent8b97235beb506e6369d87a79cdd90c43e71d51c8 (diff)
downloadchromium_src-f2bc0cb52453bbca0c9b998994de8674f8a1e874.zip
chromium_src-f2bc0cb52453bbca0c9b998994de8674f8a1e874.tar.gz
chromium_src-f2bc0cb52453bbca0c9b998994de8674f8a1e874.tar.bz2
Do some minor cleanup in histogram.*
I was trying to debug some code, and noticed some excess complexity. There are no significant semantic changes. DCHECK on a foo.get() is a waste given we're about to deref the pointer. Execution cost should be be minially less, and we get rid of several lines of code. BUG=46263 r=mbelshe Review URL: http://codereview.chromium.org/2805033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50847 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base')
-rw-r--r--base/histogram.cc47
-rw-r--r--base/histogram.h5
2 files changed, 13 insertions, 39 deletions
diff --git a/base/histogram.cc b/base/histogram.cc
index 1b1720e..a4912b9 100644
--- a/base/histogram.cc
+++ b/base/histogram.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
+// Copyright (c) 2006-2010 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -30,16 +30,9 @@ scoped_refptr<Histogram> Histogram::FactoryGet(const std::string& name,
if (maximum >= kSampleType_MAX)
maximum = kSampleType_MAX - 1;
- if (StatisticsRecorder::FindHistogram(name, &histogram)) {
- DCHECK(histogram.get() != NULL);
- } else {
+ if (!StatisticsRecorder::FindHistogram(name, &histogram)) {
histogram = new Histogram(name, minimum, maximum, bucket_count);
- scoped_refptr<Histogram> registered_histogram(NULL);
- StatisticsRecorder::FindHistogram(name, &registered_histogram);
- // Allow a NULL return to mean that the StatisticsRecorder was not started.
- if (registered_histogram.get() != NULL &&
- registered_histogram.get() != histogram.get())
- histogram = registered_histogram;
+ StatisticsRecorder::FindHistogram(name, &histogram);
}
DCHECK(HISTOGRAM == histogram->histogram_type());
@@ -584,15 +577,9 @@ scoped_refptr<Histogram> LinearHistogram::FactoryGet(
if (maximum >= kSampleType_MAX)
maximum = kSampleType_MAX - 1;
- if (StatisticsRecorder::FindHistogram(name, &histogram)) {
- DCHECK(histogram.get() != NULL);
- } else {
+ if (!StatisticsRecorder::FindHistogram(name, &histogram)) {
histogram = new LinearHistogram(name, minimum, maximum, bucket_count);
- scoped_refptr<Histogram> registered_histogram(NULL);
- StatisticsRecorder::FindHistogram(name, &registered_histogram);
- if (registered_histogram.get() != NULL &&
- registered_histogram.get() != histogram.get())
- histogram = registered_histogram;
+ StatisticsRecorder::FindHistogram(name, &histogram);
}
DCHECK(LINEAR_HISTOGRAM == histogram->histogram_type());
@@ -673,15 +660,9 @@ scoped_refptr<Histogram> BooleanHistogram::FactoryGet(const std::string& name,
Flags flags) {
scoped_refptr<Histogram> histogram(NULL);
- if (StatisticsRecorder::FindHistogram(name, &histogram)) {
- DCHECK(histogram.get() != NULL);
- } else {
+ if (!StatisticsRecorder::FindHistogram(name, &histogram)) {
histogram = new BooleanHistogram(name);
- scoped_refptr<Histogram> registered_histogram(NULL);
- StatisticsRecorder::FindHistogram(name, &registered_histogram);
- if (registered_histogram.get() != NULL &&
- registered_histogram.get() != histogram.get())
- histogram = registered_histogram;
+ StatisticsRecorder::FindHistogram(name, &histogram);
}
DCHECK(BOOLEAN_HISTOGRAM == histogram->histogram_type());
@@ -712,16 +693,9 @@ scoped_refptr<Histogram> CustomHistogram::FactoryGet(
DCHECK_LT(ranges.back(), kSampleType_MAX);
- if (StatisticsRecorder::FindHistogram(name, &histogram)) {
- DCHECK(histogram.get());
- DCHECK_EQ(histogram->histogram_type(), CUSTOM_HISTOGRAM);
- } else {
+ if (!StatisticsRecorder::FindHistogram(name, &histogram)) {
histogram = new CustomHistogram(name, ranges);
- scoped_refptr<Histogram> registered_histogram(NULL);
- StatisticsRecorder::FindHistogram(name, &registered_histogram);
- if (registered_histogram.get() &&
- registered_histogram.get() != histogram.get())
- histogram = registered_histogram;
+ StatisticsRecorder::FindHistogram(name, &histogram);
}
DCHECK_EQ(histogram->histogram_type(), CUSTOM_HISTOGRAM);
@@ -776,7 +750,6 @@ StatisticsRecorder::~StatisticsRecorder() {
WriteGraph("", &output);
LOG(INFO) << output;
}
-
// Clean up.
delete histograms_;
histograms_ = NULL;
@@ -800,7 +773,6 @@ void StatisticsRecorder::Register(Histogram* histogram) {
return;
const std::string name = histogram->histogram_name();
AutoLock auto_lock(*lock_);
-
DCHECK(histograms_->end() == histograms_->find(name));
(*histograms_)[name] = histogram;
@@ -859,6 +831,7 @@ void StatisticsRecorder::GetHistograms(Histograms* output) {
for (HistogramMap::iterator it = histograms_->begin();
histograms_->end() != it;
++it) {
+ DCHECK(it->second->histogram_name() == it->first);
output->push_back(it->second);
}
}
diff --git a/base/histogram.h b/base/histogram.h
index a11e293..64ae9cb 100644
--- a/base/histogram.h
+++ b/base/histogram.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
+// Copyright (c) 2006-2010 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -603,7 +603,8 @@ class StatisticsRecorder {
static void GetHistograms(Histograms* output);
// Find a histogram by name. It matches the exact name. This method is thread
- // safe.
+ // safe. If a matching histogram is not found, then the |histogram| is
+ // not changed.
static bool FindHistogram(const std::string& query,
scoped_refptr<Histogram>* histogram);