diff options
author | jar@chromium.org <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-25 15:55:15 +0000 |
---|---|---|
committer | jar@chromium.org <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-25 15:55:15 +0000 |
commit | f2bc0cb52453bbca0c9b998994de8674f8a1e874 (patch) | |
tree | 5de676608035f4ace623512767c67d7b6a730a20 /base | |
parent | 8b97235beb506e6369d87a79cdd90c43e71d51c8 (diff) | |
download | chromium_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.cc | 47 | ||||
-rw-r--r-- | base/histogram.h | 5 |
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, ®istered_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, ®istered_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, ®istered_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, ®istered_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); |