| Index: base/trace_event/trace_buffer.cc
|
| diff --git a/base/trace_event/trace_buffer.cc b/base/trace_event/trace_buffer.cc
|
| index eb7caa5a4a43dd5ebfb323e74277e7f39c156725..5d8a9bfa15bdcdb9d0a760c6647aa584b1e976aa 100644
|
| --- a/base/trace_event/trace_buffer.cc
|
| +++ b/base/trace_event/trace_buffer.cc
|
| @@ -5,8 +5,9 @@
|
| #include "base/trace_event/trace_buffer.h"
|
|
|
| #include <utility>
|
| +#include <vector>
|
|
|
| -#include "base/memory/scoped_vector.h"
|
| +#include "base/memory/scoped_ptr.h"
|
| #include "base/trace_event/trace_event_impl.h"
|
|
|
| namespace base {
|
| @@ -40,7 +41,7 @@ class TraceBufferRingBuffer : public TraceBuffer {
|
| if (*index >= chunks_.size())
|
| chunks_.resize(*index + 1);
|
|
|
| - TraceBufferChunk* chunk = chunks_[*index];
|
| + TraceBufferChunk* chunk = chunks_[*index].release();
|
| chunks_[*index] = NULL; // Put NULL in the slot of a in-flight chunk.
|
| if (chunk)
|
| chunk->Reset(current_chunk_seq_++);
|
| @@ -57,7 +58,7 @@ class TraceBufferRingBuffer : public TraceBuffer {
|
| DCHECK(chunk);
|
| DCHECK_LT(index, chunks_.size());
|
| DCHECK(!chunks_[index]);
|
| - chunks_[index] = chunk.release();
|
| + chunks_[index] = std::move(chunk);
|
| recyclable_chunks_queue_[queue_tail_] = index;
|
| queue_tail_ = NextQueueIndex(queue_tail_);
|
| }
|
| @@ -76,7 +77,7 @@ class TraceBufferRingBuffer : public TraceBuffer {
|
| TraceEvent* GetEventByHandle(TraceEventHandle handle) override {
|
| if (handle.chunk_index >= chunks_.size())
|
| return NULL;
|
| - TraceBufferChunk* chunk = chunks_[handle.chunk_index];
|
| + TraceBufferChunk* chunk = chunks_[handle.chunk_index].get();
|
| if (!chunk || chunk->seq() != handle.chunk_seq)
|
| return NULL;
|
| return chunk->GetEventAt(handle.event_index);
|
| @@ -92,7 +93,7 @@ class TraceBufferRingBuffer : public TraceBuffer {
|
| if (chunk_index >= chunks_.size()) // Skip uninitialized chunks.
|
| continue;
|
| DCHECK(chunks_[chunk_index]);
|
| - return chunks_[chunk_index];
|
| + return chunks_[chunk_index].get();
|
| }
|
| return NULL;
|
| }
|
| @@ -104,8 +105,8 @@ class TraceBufferRingBuffer : public TraceBuffer {
|
| size_t chunk_index = recyclable_chunks_queue_[queue_index];
|
| if (chunk_index >= chunks_.size()) // Skip uninitialized chunks.
|
| continue;
|
| - TraceBufferChunk* chunk = chunks_[chunk_index];
|
| - cloned_buffer->chunks_.push_back(chunk ? chunk->Clone().release() : NULL);
|
| + TraceBufferChunk* chunk = chunks_[chunk_index].get();
|
| + cloned_buffer->chunks_.push_back(chunk ? chunk->Clone() : NULL);
|
| }
|
| return std::move(cloned_buffer);
|
| }
|
| @@ -130,7 +131,7 @@ class TraceBufferRingBuffer : public TraceBuffer {
|
| // The only implemented method.
|
| const TraceBufferChunk* NextChunk() override {
|
| return current_iteration_index_ < chunks_.size()
|
| - ? chunks_[current_iteration_index_++]
|
| + ? chunks_[current_iteration_index_++].get()
|
| : NULL;
|
| }
|
|
|
| @@ -157,7 +158,7 @@ class TraceBufferRingBuffer : public TraceBuffer {
|
| }
|
|
|
| size_t current_iteration_index_;
|
| - ScopedVector<TraceBufferChunk> chunks_;
|
| + std::vector<scoped_ptr<TraceBufferChunk>> chunks_;
|
| };
|
|
|
| bool QueueIsEmpty() const { return queue_head_ == queue_tail_; }
|
| @@ -183,7 +184,7 @@ class TraceBufferRingBuffer : public TraceBuffer {
|
| }
|
|
|
| size_t max_chunks_;
|
| - ScopedVector<TraceBufferChunk> chunks_;
|
| + std::vector<scoped_ptr<TraceBufferChunk>> chunks_;
|
|
|
| scoped_ptr<size_t[]> recyclable_chunks_queue_;
|
| size_t queue_head_;
|
|
|