summaryrefslogtreecommitdiffstats
path: root/net/disk_cache
diff options
context:
space:
mode:
Diffstat (limited to 'net/disk_cache')
-rw-r--r--net/disk_cache/stats.cc10
1 files changed, 7 insertions, 3 deletions
diff --git a/net/disk_cache/stats.cc b/net/disk_cache/stats.cc
index 83448d5..7c49e5c 100644
--- a/net/disk_cache/stats.cc
+++ b/net/disk_cache/stats.cc
@@ -74,7 +74,7 @@ bool LoadStats(BackendImpl* backend, Addr address, OnDiskStats* stats) {
if (stats->signature != kDiskSignature)
return false;
- // We don't want to discard the whole cache everytime we have one extra
+ // We don't want to discard the whole cache every time we have one extra
// counter; just reset them to zero.
if (stats->size != sizeof(*stats))
memset(stats, 0, sizeof(*stats));
@@ -120,8 +120,12 @@ bool Stats::Init(BackendImpl* backend, uint32* storage_addr) {
storage_addr_ = address.value();
backend_ = backend;
- size_histogram_.reset(new StatsHistogram(L"DiskCache.SizeStats"));
- size_histogram_->Init(this);
+ if (!size_histogram_.get()) {
+ // Stats may be reused when the cache is re-created, but we want only one
+ // histogram at any given time.
+ size_histogram_.reset(new StatsHistogram(L"DiskCache.SizeStats"));
+ size_histogram_->Init(this);
+ }
memcpy(data_sizes_, stats.data_sizes, sizeof(data_sizes_));
memcpy(counters_, stats.counters, sizeof(counters_));