Index: base/metrics/histogram.cc |
diff --git a/base/metrics/histogram.cc b/base/metrics/histogram.cc |
index 7feacdbff7f62c3fa8d1b5e524fd6d4ea3a2b4fd..ea4f8167fa28cc7098ce233cddbd7ed77fd23a77 100644 |
--- a/base/metrics/histogram.cc |
+++ b/base/metrics/histogram.cc |
@@ -154,22 +154,10 @@ |
ImportPersistentHistograms(); |
HistogramBase* histogram = StatisticsRecorder::FindHistogram(name_); |
- |
- // crbug.com/588946 debugging. See comment at end of function. |
- const BucketRanges* created_ranges = |
- reinterpret_cast<const BucketRanges*>(0xDEADBEEF); |
- const BucketRanges* registered_ranges = |
- reinterpret_cast<const BucketRanges*>(0xDEADBEEF); |
- HistogramBase* tentative_histogram = |
- reinterpret_cast<HistogramBase*>(0xDEADBEEF); |
- PersistentMemoryAllocator* allocator = |
- reinterpret_cast<PersistentMemoryAllocator*>(0xDEADBEEF); |
- PersistentMemoryAllocator::Reference histogram_ref = 0xDEADBEEF; |
- |
if (!histogram) { |
// To avoid racy destruction at shutdown, the following will be leaked. |
- created_ranges = CreateRanges(); |
- registered_ranges = |
+ const BucketRanges* created_ranges = CreateRanges(); |
+ const BucketRanges* registered_ranges = |
StatisticsRecorder::RegisterOrDeleteDuplicateRanges(created_ranges); |
// In most cases, the bucket-count, minimum, and maximum values are known |
@@ -182,17 +170,15 @@ |
minimum_ = registered_ranges->range(1); |
maximum_ = registered_ranges->range(bucket_count_ - 1); |
} |
- CHECK_LT(0, minimum_); |
- CHECK_LT(0, maximum_); |
// Try to create the histogram using a "persistent" allocator. As of |
// 2015-01-14, the availability of such is controlled by a base::Feature |
// that is off by default. If the allocator doesn't exist or if |
// allocating from it fails, code below will allocate the histogram from |
// the process heap. |
- histogram_ref = 0; |
- tentative_histogram = nullptr; |
- allocator = |
+ PersistentMemoryAllocator::Reference histogram_ref = 0; |
+ HistogramBase* tentative_histogram = nullptr; |
+ PersistentMemoryAllocator* allocator = |
GetPersistentHistogramMemoryAllocator(); |
if (allocator) { |
flags_ |= HistogramBase::kIsPersistent; |
@@ -205,12 +191,6 @@ |
registered_ranges, |
flags_, |
&histogram_ref); |
- CHECK_LT(0, minimum_); |
- CHECK_LT(0, maximum_); |
- CHECK_EQ(minimum_, |
- static_cast<Histogram*>(tentative_histogram)->declared_min_); |
- CHECK_EQ(maximum_, |
- static_cast<Histogram*>(tentative_histogram)->declared_max_); |
} |
// Handle the case where no persistent allocator is present or the |
@@ -220,12 +200,6 @@ |
DCHECK(!allocator); // Shouldn't have failed. |
flags_ &= ~HistogramBase::kIsPersistent; |
tentative_histogram = HeapAlloc(registered_ranges); |
- CHECK_LT(0, minimum_); |
- CHECK_LT(0, maximum_); |
- CHECK_EQ(minimum_, |
- static_cast<Histogram*>(tentative_histogram)->declared_min_); |
- CHECK_EQ(maximum_, |
- static_cast<Histogram*>(tentative_histogram)->declared_max_); |
} |
FillHistogram(tentative_histogram); |
@@ -240,15 +214,6 @@ |
} |
DCHECK_EQ(histogram_type_, histogram->GetHistogramType()); |
- bool bad_args = false; |
- HistogramBase* existing_histogram = histogram; |
- HistogramType existing_type = histogram->GetHistogramType(); |
- const char* existing_name = histogram->histogram_name().c_str(); |
- Sample existing_minimum = static_cast<Histogram*>(histogram)->declared_min_; |
- Sample existing_maximum = static_cast<Histogram*>(histogram)->declared_max_; |
- uint32_t existing_bucket_count = |
- static_cast<Histogram*>(histogram)->bucket_count(); |
- |
if (bucket_count_ != 0 && |
!histogram->HasConstructionArguments(minimum_, maximum_, bucket_count_)) { |
// The construction arguments do not match the existing histogram. This can |
@@ -258,45 +223,8 @@ |
// on dereference, but extension/Pepper APIs will guard against NULL and not |
// crash. |
DLOG(ERROR) << "Histogram " << name_ << " has bad construction arguments"; |
- bad_args = true; |
- histogram = nullptr; |
- } |
- |
-#if !DCHECK_IS_ON() // Don't affect tests, only release builds. |
- // For the moment, crash here so that collected crash reports have access |
- // to the construction values in order to figure out why this is failing. |
- // TODO(bcwhite): Remove this once crbug.com/588946 is resolved. Also remove |
- // from beta-branch because we don't want crashes due to misbehaving |
- // extensions (see comment above). |
- if (!histogram) { |
- HistogramType histogram_type = histogram_type_; |
- HistogramBase::Sample minimum = minimum_; |
- HistogramBase::Sample maximum = maximum_; |
- uint32_t bucket_count = bucket_count_; |
- int32_t flags = flags_; |
- CHECK(histogram) << name_ << ": bad-args=" << bad_args; |
- base::debug::Alias(&histogram_type); |
- base::debug::Alias(&minimum); |
- base::debug::Alias(&maximum); |
- base::debug::Alias(&bucket_count); |
- base::debug::Alias(&flags); |
- base::debug::Alias(&created_ranges); |
- base::debug::Alias(®istered_ranges); |
- base::debug::Alias(&histogram_ref); |
- base::debug::Alias(&tentative_histogram); |
- base::debug::Alias(&allocator); |
- base::debug::Alias(&tentative_histogram); |
- } |
-#endif |
- |
- // Down here so vars are always "used". |
- base::debug::Alias(&bad_args); |
- base::debug::Alias(&existing_histogram); |
- base::debug::Alias(&existing_type); |
- base::debug::Alias(&existing_name); |
- base::debug::Alias(&existing_minimum); |
- base::debug::Alias(&existing_maximum); |
- base::debug::Alias(&existing_bucket_count); |
+ return nullptr; |
+ } |
return histogram; |
} |
@@ -558,12 +486,8 @@ |
bucket_ranges_(ranges), |
declared_min_(minimum), |
declared_max_(maximum) { |
- CHECK_LT(0, minimum); |
- CHECK_LT(0, maximum); |
if (ranges) |
samples_.reset(new SampleVector(HashMetricName(name), ranges)); |
- CHECK_EQ(minimum, declared_min_); |
- CHECK_EQ(maximum, declared_max_); |
} |
Histogram::Histogram(const std::string& name, |
@@ -579,16 +503,12 @@ |
bucket_ranges_(ranges), |
declared_min_(minimum), |
declared_max_(maximum) { |
- CHECK_LT(0, minimum); |
- CHECK_LT(0, maximum); |
if (ranges) { |
samples_.reset(new SampleVector(HashMetricName(name), |
counts, counts_size, meta, ranges)); |
logged_samples_.reset(new SampleVector(samples_->id(), logged_counts, |
counts_size, logged_meta, ranges)); |
} |
- CHECK_EQ(minimum, declared_min_); |
- CHECK_EQ(maximum, declared_max_); |
} |
Histogram::~Histogram() { |