Index: minidump/minidump_thread_writer.h |
diff --git a/minidump/minidump_thread_writer.h b/minidump/minidump_thread_writer.h |
index 8fce7cbe03169954e4c55de6cbeb98d8b525bfd9..5ce048160fa79a44025d14f65d4ae1abf84f298c 100644 |
--- a/minidump/minidump_thread_writer.h |
+++ b/minidump/minidump_thread_writer.h |
@@ -21,8 +21,10 @@ |
#include <vector> |
#include "base/basictypes.h" |
+#include "base/memory/scoped_ptr.h" |
#include "minidump/minidump_stream_writer.h" |
#include "minidump/minidump_writable.h" |
+#include "util/stdlib/pointer_container.h" |
namespace crashpad { |
@@ -39,7 +41,7 @@ class MinidumpMemoryWriter; |
class MinidumpThreadWriter final : public internal::MinidumpWritable { |
public: |
MinidumpThreadWriter(); |
- ~MinidumpThreadWriter() {} |
+ ~MinidumpThreadWriter() override; |
//! \brief Returns a MINIDUMP_THREAD referencing this object’s data. |
//! |
@@ -53,7 +55,7 @@ class MinidumpThreadWriter final : public internal::MinidumpWritable { |
//! corresponding to this object’s stack. |
//! |
//! If the thread does not have a stack, or its stack could not be determined, |
- //! this will return nullptr. |
+ //! this will return `nullptr`. |
//! |
//! This method is provided so that MinidumpThreadListWriter can obtain thread |
//! stack memory regions for the purposes of adding them to a |
@@ -62,27 +64,27 @@ class MinidumpThreadWriter final : public internal::MinidumpWritable { |
//! MinidumpMemoryListWriter::AddExtraMemory(). |
//! |
//! \note Valid in any state. |
- MinidumpMemoryWriter* Stack() const { return stack_; } |
+ MinidumpMemoryWriter* Stack() const { return stack_.get(); } |
//! \brief Arranges for MINIDUMP_THREAD::Stack to point to the MINIDUMP_MEMORY |
//! object to be written by \a stack. |
//! |
- //! \a stack will become a child of this object in the overall tree of |
- //! internal::MinidumpWritable objects. |
+ //! This object takes ownership of \a stack and becomes its parent in the |
+ //! overall tree of internal::MinidumpWritable objects. |
//! |
//! \note Valid in #kStateMutable. |
- void SetStack(MinidumpMemoryWriter* stack); |
+ void SetStack(scoped_ptr<MinidumpMemoryWriter> stack); |
//! \brief Arranges for MINIDUMP_THREAD::ThreadContext to point to the CPU |
//! context to be written by \a context. |
//! |
//! A context is required in all MINIDUMP_THREAD objects. |
//! |
- //! \a context will become a child of this object in the overall tree of |
- //! internal::MinidumpWritable objects. |
+ //! This object takes ownership of \a context and becomes its parent in the |
+ //! overall tree of internal::MinidumpWritable objects. |
//! |
//! \note Valid in #kStateMutable. |
- void SetContext(MinidumpContextWriter* context); |
+ void SetContext(scoped_ptr<MinidumpContextWriter> context); |
//! \brief Sets MINIDUMP_THREAD::ThreadId. |
void SetThreadID(uint32_t thread_id) { thread_.ThreadId = thread_id; } |
@@ -112,8 +114,8 @@ class MinidumpThreadWriter final : public internal::MinidumpWritable { |
private: |
MINIDUMP_THREAD thread_; |
- MinidumpMemoryWriter* stack_; // weak |
- MinidumpContextWriter* context_; // weak |
+ scoped_ptr<MinidumpMemoryWriter> stack_; |
+ scoped_ptr<MinidumpContextWriter> context_; |
DISALLOW_COPY_AND_ASSIGN(MinidumpThreadWriter); |
}; |
@@ -123,7 +125,7 @@ class MinidumpThreadWriter final : public internal::MinidumpWritable { |
class MinidumpThreadListWriter final : public internal::MinidumpStreamWriter { |
public: |
MinidumpThreadListWriter(); |
- ~MinidumpThreadListWriter(); |
+ ~MinidumpThreadListWriter() override; |
//! \brief Sets the MinidumpMemoryListWriter that each thread’s stack memory |
//! region should be added to as extra memory. |
@@ -154,11 +156,11 @@ class MinidumpThreadListWriter final : public internal::MinidumpStreamWriter { |
//! \brief Adds a MinidumpThreadWriter to the MINIDUMP_THREAD_LIST. |
//! |
- //! \a thread will become a child of this object in the overall tree of |
- //! internal::MinidumpWritable objects. |
+ //! This object takes ownership of \a thread and becomes its parent in the |
+ //! overall tree of internal::MinidumpWritable objects. |
//! |
//! \note Valid in #kStateMutable. |
- void AddThread(MinidumpThreadWriter* thread); |
+ void AddThread(scoped_ptr<MinidumpThreadWriter> thread); |
protected: |
// MinidumpWritable: |
@@ -172,7 +174,7 @@ class MinidumpThreadListWriter final : public internal::MinidumpStreamWriter { |
private: |
MINIDUMP_THREAD_LIST thread_list_base_; |
- std::vector<MinidumpThreadWriter*> threads_; // weak |
+ PointerVector<MinidumpThreadWriter> threads_; |
MinidumpMemoryListWriter* memory_list_writer_; // weak |
DISALLOW_COPY_AND_ASSIGN(MinidumpThreadListWriter); |