Index: base/metrics/sample_vector.h |
diff --git a/base/metrics/sample_vector.h b/base/metrics/sample_vector.h |
index 8cb2ab9e0a6db364937c5ea5de7171d741715513..a12c0f5536f22e367848310cbbee2d8e832b3297 100644 |
--- a/base/metrics/sample_vector.h |
+++ b/base/metrics/sample_vector.h |
@@ -22,7 +22,12 @@ class BucketRanges; |
class BASE_EXPORT SampleVector : public HistogramSamples { |
public: |
- explicit SampleVector(const BucketRanges* bucket_ranges); |
+ SampleVector(uint64 id, const BucketRanges* bucket_ranges); |
+ SampleVector(uint64 id, |
+ HistogramBase::AtomicCount* counts, |
+ size_t counts_size, |
+ Metadata* meta, |
+ const BucketRanges* bucket_ranges); |
~SampleVector() override; |
// HistogramSamples implementation: |
@@ -45,7 +50,14 @@ class BASE_EXPORT SampleVector : public HistogramSamples { |
private: |
FRIEND_TEST_ALL_PREFIXES(HistogramTest, CorruptSampleCounts); |
- std::vector<HistogramBase::AtomicCount> counts_; |
+ // In the case where this class manages the memory, here it is. |
+ std::vector<HistogramBase::AtomicCount> local_counts_; |
+ |
+ // These are raw pointers rather than objects for flexibility. The actual |
+ // memory is either managed by local_counts_ above or by an external object |
+ // and passed in directly. |
+ HistogramBase::AtomicCount* counts_; |
+ size_t counts_size_; |
// Shares the same BucketRanges with Histogram object. |
const BucketRanges* const bucket_ranges_; |
@@ -57,6 +69,9 @@ class BASE_EXPORT SampleVectorIterator : public SampleCountIterator { |
public: |
SampleVectorIterator(const std::vector<HistogramBase::AtomicCount>* counts, |
const BucketRanges* bucket_ranges); |
+ SampleVectorIterator(const HistogramBase::AtomicCount* counts, |
+ size_t counts_size, |
+ const BucketRanges* bucket_ranges); |
~SampleVectorIterator() override; |
// SampleCountIterator implementation: |
@@ -72,7 +87,8 @@ class BASE_EXPORT SampleVectorIterator : public SampleCountIterator { |
private: |
void SkipEmptyBuckets(); |
- const std::vector<HistogramBase::AtomicCount>* counts_; |
+ const HistogramBase::AtomicCount* counts_; |
+ size_t counts_size_; |
const BucketRanges* bucket_ranges_; |
size_t index_; |