diff options
author | glider@chromium.org <glider@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-27 08:11:40 +0000 |
---|---|---|
committer | glider@chromium.org <glider@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-27 08:11:40 +0000 |
commit | 69b5cc1cd49d108cdb7ced431f8caf56e8d3bd43 (patch) | |
tree | 5e23089143869af08c57c928ea4288013c21b58c /net/disk_cache | |
parent | abe7c1dc8ceb77e57c9d782d6eab8b0276173bf9 (diff) | |
download | chromium_src-69b5cc1cd49d108cdb7ced431f8caf56e8d3bd43.zip chromium_src-69b5cc1cd49d108cdb7ced431f8caf56e8d3bd43.tar.gz chromium_src-69b5cc1cd49d108cdb7ced431f8caf56e8d3bd43.tar.bz2 |
Fix http://codereview.chromium.org/6869009 to ignore an existing object exactly once and land the CL again:
Introduce the ANNOTATE_LEAKING_OBJECT_PTR annotation that can be used to mark
heap allocated objects as intentionally leaked ones.
Annotate the histograms produced by {Histogram,BooleanHistogram,LinearHistogram,CustomHistogram}::FactoryGet(), as leaked.
Rename StatsHistogram::StatsHistogramFactoryGet to StatsHistogram::FactoryGet, annotate the result as leaky, update the suppressions.
BUG=79322
TBR=jar
Review URL: http://codereview.chromium.org/6976044
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86990 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/disk_cache')
-rw-r--r-- | net/disk_cache/stats.cc | 2 | ||||
-rw-r--r-- | net/disk_cache/stats_histogram.cc | 6 | ||||
-rw-r--r-- | net/disk_cache/stats_histogram.h | 2 |
3 files changed, 6 insertions, 4 deletions
diff --git a/net/disk_cache/stats.cc b/net/disk_cache/stats.cc index 6fdd31c..af3b941 100644 --- a/net/disk_cache/stats.cc +++ b/net/disk_cache/stats.cc @@ -151,7 +151,7 @@ bool Stats::Init(BackendImpl* backend, uint32* storage_addr) { // Stats may be reused when the cache is re-created, but we want only one // histogram at any given time. size_histogram_ = - StatsHistogram::StatsHistogramFactoryGet("DiskCache.SizeStats"); + StatsHistogram::FactoryGet("DiskCache.SizeStats"); size_histogram_->Init(this); } } diff --git a/net/disk_cache/stats_histogram.cc b/net/disk_cache/stats_histogram.cc index 6d3097a..bea5fd9 100644 --- a/net/disk_cache/stats_histogram.cc +++ b/net/disk_cache/stats_histogram.cc @@ -4,6 +4,7 @@ #include "net/disk_cache/stats_histogram.h" +#include "base/debug/leak_annotations.h" #include "base/logging.h" #include "net/disk_cache/stats.h" @@ -21,8 +22,7 @@ StatsHistogram::~StatsHistogram() { stats_ = NULL; } -StatsHistogram* StatsHistogram::StatsHistogramFactoryGet( - const std::string& name) { +StatsHistogram* StatsHistogram::FactoryGet(const std::string& name) { Histogram* histogram(NULL); Sample minimum = 1; @@ -38,6 +38,8 @@ StatsHistogram* StatsHistogram::StatsHistogramFactoryGet( stats_histogram->InitializeBucketRange(); stats_histogram->SetFlags(kUmaTargetedHistogramFlag); histogram = StatisticsRecorder::RegisterOrDeleteDuplicate(stats_histogram); + if (histogram == stats_histogram) + ANNOTATE_LEAKING_OBJECT_PTR(return_histogram); // see crbug.com/79322 } DCHECK(HISTOGRAM == histogram->histogram_type()); diff --git a/net/disk_cache/stats_histogram.h b/net/disk_cache/stats_histogram.h index 7f513ce..f41c384 100644 --- a/net/disk_cache/stats_histogram.h +++ b/net/disk_cache/stats_histogram.h @@ -35,7 +35,7 @@ class StatsHistogram : public base::Histogram { : Histogram(name, minimum, maximum, bucket_count), init_(false) {} virtual ~StatsHistogram(); - static StatsHistogram* StatsHistogramFactoryGet(const std::string& name); + static StatsHistogram* FactoryGet(const std::string& name); // We'll be reporting data from the given set of cache stats. bool Init(const Stats* stats); |