| Index: base/metrics/histogram.cc | 
| diff --git a/base/metrics/histogram.cc b/base/metrics/histogram.cc | 
| index fabc44135d796837e300ec15bdbda256166e33d6..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 | 
| @@ -188,9 +176,9 @@ | 
| // 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; | 
| @@ -235,36 +223,8 @@ | 
| // on dereference, but extension/Pepper APIs will guard against NULL and not | 
| // crash. | 
| DLOG(ERROR) << "Histogram " << name_ << " has bad construction arguments"; | 
| -    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); | 
| -    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 | 
| - | 
| +    return nullptr; | 
| +  } | 
| return histogram; | 
| } | 
|  | 
|  |