| Index: minidump/minidump_string_writer.h
 | 
| diff --git a/minidump/minidump_string_writer.h b/minidump/minidump_string_writer.h
 | 
| index 1064736d32ead77e26bd5652d731dc211f51d0c9..319f507bba13c5c45f656fce8386e5e7ee10cd8a 100644
 | 
| --- a/minidump/minidump_string_writer.h
 | 
| +++ b/minidump/minidump_string_writer.h
 | 
| @@ -18,10 +18,12 @@
 | 
|  #include <dbghelp.h>
 | 
|  
 | 
|  #include <string>
 | 
| +#include <vector>
 | 
|  
 | 
|  #include "base/basictypes.h"
 | 
|  #include "base/strings/string16.h"
 | 
|  #include "minidump/minidump_extensions.h"
 | 
| +#include "minidump/minidump_rva_list_writer.h"
 | 
|  #include "minidump/minidump_writable.h"
 | 
|  
 | 
|  namespace crashpad {
 | 
| @@ -124,6 +126,68 @@ class MinidumpUTF8StringWriter final
 | 
|    DISALLOW_COPY_AND_ASSIGN(MinidumpUTF8StringWriter);
 | 
|  };
 | 
|  
 | 
| +//! \cond
 | 
| +
 | 
| +struct MinidumpStringListWriterUTF16Traits {
 | 
| +  using MinidumpStringWriterType = MinidumpUTF16StringWriter;
 | 
| +};
 | 
| +
 | 
| +struct MinidumpStringListWriterUTF8Traits {
 | 
| +  using MinidumpStringWriterType = MinidumpUTF8StringWriter;
 | 
| +};
 | 
| +
 | 
| +//! \endcond
 | 
| +
 | 
| +//! \brief The writer for a MinidumpRVAList object in a minidump file,
 | 
| +//!     containing a list of \a Traits::MinidumpStringWriterType objects.
 | 
| +template <typename Traits>
 | 
| +class MinidumpStringListWriter : public MinidumpRVAListWriter {
 | 
| + public:
 | 
| +  using MinidumpStringWriterType = typename Traits::MinidumpStringWriterType;
 | 
| +
 | 
| +  MinidumpStringListWriter();
 | 
| +  ~MinidumpStringListWriter() override;
 | 
| +
 | 
| +  //! \brief Adds a new \a Traits::MinidumpStringWriterType for each element in
 | 
| +  //!     \a vector to the MinidumpRVAList.
 | 
| +  //!
 | 
| +  //! \param[in] vector The vector to use as source data. Each string in the
 | 
| +  //!     vector is treated as a UTF-8 string, and a new string writer will be
 | 
| +  //!     created for each one and made a child of the MinidumpStringListWriter.
 | 
| +  //!
 | 
| +  //! \note Valid in #kStateMutable. No mutator methods may be called before
 | 
| +  //!     this method, and it is not normally necessary to call any mutator
 | 
| +  //!     methods after this method.
 | 
| +  void InitializeFromVector(const std::vector<std::string>& vector);
 | 
| +
 | 
| +  //! \brief Creates a new \a Traits::MinidumpStringWriterType object and adds
 | 
| +  //!     it to the MinidumpRVAList.
 | 
| +  //!
 | 
| +  //! This object creates a new string writer with string value \a string_utf8,
 | 
| +  //! takes ownership of it, and becomes its parent in the overall tree of
 | 
| +  //! internal::MinidumpWritable objects.
 | 
| +  //!
 | 
| +  //! \note Valid in #kStateMutable.
 | 
| +  void AddStringUTF8(const std::string& string_utf8);
 | 
| +
 | 
| +  //! \brief Determines whether the object is useful.
 | 
| +  //!
 | 
| +  //! A useful object is one that carries data that makes a meaningful
 | 
| +  //! contribution to a minidump file. An object carrying entries would be
 | 
| +  //! considered useful.
 | 
| +  //!
 | 
| +  //! \return `true` if the object is useful, `false` otherwise.
 | 
| +  bool IsUseful() const;
 | 
| +
 | 
| + private:
 | 
| +  DISALLOW_COPY_AND_ASSIGN(MinidumpStringListWriter);
 | 
| +};
 | 
| +
 | 
| +using MinidumpUTF16StringListWriter =
 | 
| +    MinidumpStringListWriter<MinidumpStringListWriterUTF16Traits>;
 | 
| +using MinidumpUTF8StringListWriter =
 | 
| +    MinidumpStringListWriter<MinidumpStringListWriterUTF8Traits>;
 | 
| +
 | 
|  }  // namespace internal
 | 
|  }  // namespace crashpad
 | 
|  
 | 
| 
 |