| Index: base/trace_event/heap_profiler_stack_frame_deduplicator.h
|
| diff --git a/base/trace_event/heap_profiler_stack_frame_deduplicator.h b/base/trace_event/heap_profiler_stack_frame_deduplicator.h
|
| index 66d430f2ee32572aa0732c4105de410a3ac4db27..18cb2459afe1a0af6dc4cc85644f719376d163ab 100644
|
| --- a/base/trace_event/heap_profiler_stack_frame_deduplicator.h
|
| +++ b/base/trace_event/heap_profiler_stack_frame_deduplicator.h
|
| @@ -12,12 +12,12 @@
|
| #include "base/base_export.h"
|
| #include "base/macros.h"
|
| #include "base/trace_event/heap_profiler_allocation_context.h"
|
| -#include "base/trace_event/trace_event_impl.h"
|
|
|
| namespace base {
|
| namespace trace_event {
|
|
|
| class TraceEventMemoryOverhead;
|
| +class TracedValue;
|
|
|
| // A data structure that allows grouping a set of backtraces in a space-
|
| // efficient manner by creating a call tree and writing it as a set of (node,
|
| @@ -26,7 +26,7 @@ class TraceEventMemoryOverhead;
|
| // of |StackFrame|s to index into |frames_|. So there is a trie for bottum-up
|
| // lookup of a backtrace for deduplication, and a tree for compact storage in
|
| // the trace log.
|
| -class BASE_EXPORT StackFrameDeduplicator : public ConvertableToTraceFormat {
|
| +class BASE_EXPORT StackFrameDeduplicator {
|
| public:
|
| // A node in the call tree.
|
| struct FrameNode {
|
| @@ -49,7 +49,7 @@ class BASE_EXPORT StackFrameDeduplicator : public ConvertableToTraceFormat {
|
| using ConstIterator = std::vector<FrameNode>::const_iterator;
|
|
|
| StackFrameDeduplicator();
|
| - ~StackFrameDeduplicator() override;
|
| + ~StackFrameDeduplicator();
|
|
|
| // Inserts a backtrace where |beginFrame| is a pointer to the bottom frame
|
| // (e.g. main) and |endFrame| is a pointer past the top frame (most recently
|
| @@ -61,16 +61,18 @@ class BASE_EXPORT StackFrameDeduplicator : public ConvertableToTraceFormat {
|
| ConstIterator begin() const { return frames_.begin(); }
|
| ConstIterator end() const { return frames_.end(); }
|
|
|
| - // Writes the |stackFrames| dictionary as defined in https://goo.gl/GerkV8 to
|
| - // the trace log.
|
| - void AppendAsTraceFormat(std::string* out) const override;
|
| + // Appends new |stackFrames| dictionary items that were added after the
|
| + // last call to this function.
|
| + // Items are formatted according to https://goo.gl/GerkV8
|
| + void AppendIncrementally(TracedValue* traced_value);
|
|
|
| // Estimates memory overhead including |sizeof(StackFrameDeduplicator)|.
|
| - void EstimateTraceMemoryOverhead(TraceEventMemoryOverhead* overhead) override;
|
| + void EstimateTraceMemoryOverhead(TraceEventMemoryOverhead* overhead);
|
|
|
| private:
|
| std::map<StackFrame, int> roots_;
|
| std::vector<FrameNode> frames_;
|
| + size_t last_appended_index_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(StackFrameDeduplicator);
|
| };
|
|
|