| Index: base/metrics/histogram.cc
|
| diff --git a/base/metrics/histogram.cc b/base/metrics/histogram.cc
|
| index 3571657513f6482c5724f721c17e8a2c354ab79a..8af73e91d098e2e753a775b870d39c7d1208d44e 100644
|
| --- a/base/metrics/histogram.cc
|
| +++ b/base/metrics/histogram.cc
|
| @@ -476,15 +476,19 @@ bool Histogram::AddSamplesFromPickle(PickleIterator* iter) {
|
| }
|
|
|
| // The following methods provide a graphical histogram display.
|
| -void Histogram::WriteHTMLGraph(std::string* output) const {
|
| +void Histogram::WriteHTMLGraph(const HistogramSamples* snapshot,
|
| + std::string* output) const {
|
| // TBD(jar) Write a nice HTML bar chart, with divs an mouse-overs etc.
|
| output->append("<PRE>");
|
| - WriteAsciiImpl(true, "<br>", output);
|
| + WriteAsciiImpl(true, "<br>", static_cast<const SampleVector*>(snapshot),
|
| + output);
|
| output->append("</PRE>");
|
| }
|
|
|
| -void Histogram::WriteAscii(std::string* output) const {
|
| - WriteAsciiImpl(true, "\n", output);
|
| +void Histogram::WriteAscii(const HistogramSamples* snapshot,
|
| + std::string* output) const {
|
| + WriteAsciiImpl(true, "\n", static_cast<const SampleVector*>(snapshot),
|
| + output);
|
| }
|
|
|
| bool Histogram::SerializeInfoImpl(Pickle* pickle) const {
|
| @@ -592,10 +596,15 @@ std::unique_ptr<SampleVector> Histogram::SnapshotSampleVector() const {
|
|
|
| void Histogram::WriteAsciiImpl(bool graph_it,
|
| const std::string& newline,
|
| + const SampleVector* snapshot,
|
| std::string* output) const {
|
| - // Get local (stack) copies of all effectively volatile class data so that we
|
| - // are consistent across our output activities.
|
| - std::unique_ptr<SampleVector> snapshot = SnapshotSampleVector();
|
| + std::unique_ptr<SampleVector> local_snapshot;
|
| + if (!snapshot) {
|
| + // Get local (stack) copies of all effectively volatile class data so
|
| + // that we are consistent across our output activities.
|
| + local_snapshot = SnapshotSampleVector();
|
| + snapshot = local_snapshot.get();
|
| + }
|
| Count sample_count = snapshot->TotalCount();
|
|
|
| WriteAsciiHeader(*snapshot, sample_count, output);
|
|
|