From a5b7b7d090670613f099b13f2edd341ed0ae0267 Mon Sep 17 00:00:00 2001 From: "glider@chromium.org" Date: Thu, 19 May 2011 10:31:00 +0000 Subject: Re-land http://codereview.chromium.org/6869009 (except for the suppressions) 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. The previous commit broke the build on Linux Heapcheck, but looks like the problem has gone now. TBR=jar,willchan BUG=79322 Review URL: http://codereview.chromium.org/7048005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85898 0039d316-1c4b-4281-b951-d872f2087c98 --- net/disk_cache/stats.cc | 2 +- net/disk_cache/stats_histogram.cc | 5 +++-- net/disk_cache/stats_histogram.h | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) (limited to 'net') 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..14d2d70 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; @@ -49,6 +49,7 @@ StatsHistogram* StatsHistogram::StatsHistogramFactoryGet( // Validate upcast by seeing that we're probably providing the checksum. CHECK_EQ(return_histogram->StatsHistogram::CalculateRangeChecksum(), return_histogram->CalculateRangeChecksum()); + ANNOTATE_LEAKING_OBJECT_PTR(return_histogram); // see crbug.com/79322 return return_histogram; } diff --git a/net/disk_cache/stats_histogram.h b/net/disk_cache/stats_histogram.h index 83d359c..627286bf 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) {} ~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); -- cgit v1.1