Index: minidump/minidump_module_writer.h |
diff --git a/minidump/minidump_module_writer.h b/minidump/minidump_module_writer.h |
index 6cef8ad98c5b736fc40e5a2e13ed7b6146feba0a..4ec6ed4634510fcd7910ee009d30ef2e086e5d57 100644 |
--- a/minidump/minidump_module_writer.h |
+++ b/minidump/minidump_module_writer.h |
@@ -28,6 +28,7 @@ |
#include "minidump/minidump_extensions.h" |
#include "minidump/minidump_stream_writer.h" |
#include "minidump/minidump_writable.h" |
+#include "util/stdlib/pointer_container.h" |
namespace crashpad { |
@@ -39,7 +40,7 @@ class MinidumpUTF16StringWriter; |
//! MINIDUMP_MODULE::CvRecord in minidump files. |
class MinidumpModuleCodeViewRecordWriter : public internal::MinidumpWritable { |
public: |
- virtual ~MinidumpModuleCodeViewRecordWriter(); |
+ ~MinidumpModuleCodeViewRecordWriter() override; |
protected: |
MinidumpModuleCodeViewRecordWriter() : MinidumpWritable() {} |
@@ -134,7 +135,7 @@ class MinidumpModuleMiscDebugRecordWriter final |
: public internal::MinidumpWritable { |
public: |
MinidumpModuleMiscDebugRecordWriter(); |
- ~MinidumpModuleMiscDebugRecordWriter() {} |
+ ~MinidumpModuleMiscDebugRecordWriter() override; |
//! \brief Sets IMAGE_DEBUG_MISC::DataType. |
void SetDataType(uint32_t data_type) { |
@@ -173,7 +174,7 @@ class MinidumpModuleMiscDebugRecordWriter final |
class MinidumpModuleWriter final : public internal::MinidumpWritable { |
public: |
MinidumpModuleWriter(); |
- ~MinidumpModuleWriter(); |
+ ~MinidumpModuleWriter() override; |
//! \brief Returns a MINIDUMP_MODULE referencing this object’s data. |
//! |
@@ -194,21 +195,22 @@ class MinidumpModuleWriter final : public internal::MinidumpWritable { |
//! \brief Arranges for MINIDUMP_MODULE::CvRecord to point to a CodeView |
//! record to be written by \a codeview_record. |
//! |
- //! \a codeview_record will become a child of this object in the overall tree |
- //! of internal::MinidumpWritable objects. |
+ //! This object takes ownership of \a codeview_record and becomes its parent |
+ //! in the overall tree of internal::MinidumpWritable objects. |
//! |
//! \note Valid in #kStateMutable. |
- void SetCodeViewRecord(MinidumpModuleCodeViewRecordWriter* codeview_record); |
+ void SetCodeViewRecord( |
+ scoped_ptr<MinidumpModuleCodeViewRecordWriter> codeview_record); |
//! \brief Arranges for MINIDUMP_MODULE::MiscRecord to point to an |
//! IMAGE_DEBUG_MISC object to be written by \a misc_debug_record. |
//! |
- //! \a misc_debug_record will become a child of this object in the overall |
- //! tree of internal::MinidumpWritable objects. |
+ //! This object takes ownership of \a misc_debug_record and becomes its parent |
+ //! in the overall tree of internal::MinidumpWritable objects. |
//! |
//! \note Valid in #kStateMutable. |
void SetMiscDebugRecord( |
- MinidumpModuleMiscDebugRecordWriter* misc_debug_record); |
+ scoped_ptr<MinidumpModuleMiscDebugRecordWriter> misc_debug_record); |
//! \brief Sets IMAGE_DEBUG_MISC::BaseOfImage. |
void SetImageBaseAddress(uint64_t image_base_address) { |
@@ -279,8 +281,8 @@ class MinidumpModuleWriter final : public internal::MinidumpWritable { |
private: |
MINIDUMP_MODULE module_; |
scoped_ptr<internal::MinidumpUTF16StringWriter> name_; |
- MinidumpModuleCodeViewRecordWriter* codeview_record_; // weak |
- MinidumpModuleMiscDebugRecordWriter* misc_debug_record_; // weak |
+ scoped_ptr<MinidumpModuleCodeViewRecordWriter> codeview_record_; |
+ scoped_ptr<MinidumpModuleMiscDebugRecordWriter> misc_debug_record_; |
DISALLOW_COPY_AND_ASSIGN(MinidumpModuleWriter); |
}; |
@@ -290,15 +292,15 @@ class MinidumpModuleWriter final : public internal::MinidumpWritable { |
class MinidumpModuleListWriter final : public internal::MinidumpStreamWriter { |
public: |
MinidumpModuleListWriter(); |
- ~MinidumpModuleListWriter(); |
+ ~MinidumpModuleListWriter() override; |
//! \brief Adds a MinidumpModuleWriter to the MINIDUMP_MODULE_LIST. |
//! |
- //! \a module will become a child of this object in the overall tree of |
- //! internal::MinidumpWritable objects. |
+ //! This object takes ownership of \a module and becomes its parent in the |
+ //! overall tree of internal::MinidumpWritable objects. |
//! |
//! \note Valid in #kStateMutable. |
- void AddModule(MinidumpModuleWriter* module); |
+ void AddModule(scoped_ptr<MinidumpModuleWriter> module); |
protected: |
// MinidumpWritable: |
@@ -312,7 +314,7 @@ class MinidumpModuleListWriter final : public internal::MinidumpStreamWriter { |
private: |
MINIDUMP_MODULE_LIST module_list_base_; |
- std::vector<MinidumpModuleWriter*> modules_; // weak |
+ PointerVector<MinidumpModuleWriter> modules_; |
DISALLOW_COPY_AND_ASSIGN(MinidumpModuleListWriter); |
}; |