Index: minidump/minidump_rva_list_writer.cc |
diff --git a/minidump/minidump_rva_list_writer.cc b/minidump/minidump_rva_list_writer.cc |
index 70ffe4f017acd650659ff96b28dcfdebe3529241..74508305083cc6f40c09f2f0e14963c73bcf938b 100644 |
--- a/minidump/minidump_rva_list_writer.cc |
+++ b/minidump/minidump_rva_list_writer.cc |
@@ -23,7 +23,7 @@ namespace internal { |
MinidumpRVAListWriter::MinidumpRVAListWriter() |
: MinidumpWritable(), |
- rva_list_base_(), |
+ rva_list_base_(new MinidumpRVAList()), |
children_(), |
child_rvas_() { |
} |
@@ -46,7 +46,7 @@ bool MinidumpRVAListWriter::Freeze() { |
} |
size_t child_count = children_.size(); |
- if (!AssignIfInRange(&rva_list_base_.count, child_count)) { |
+ if (!AssignIfInRange(&rva_list_base_->count, child_count)) { |
LOG(ERROR) << "child_count " << child_count << " out of range"; |
return false; |
} |
@@ -62,7 +62,7 @@ bool MinidumpRVAListWriter::Freeze() { |
size_t MinidumpRVAListWriter::SizeOfObject() { |
DCHECK_GE(state(), kStateFrozen); |
- return sizeof(rva_list_base_) + children_.size() * sizeof(RVA); |
+ return sizeof(*rva_list_base_) + children_.size() * sizeof(RVA); |
} |
std::vector<MinidumpWritable*> MinidumpRVAListWriter::Children() { |
@@ -81,8 +81,8 @@ bool MinidumpRVAListWriter::WriteObject(FileWriterInterface* file_writer) { |
DCHECK_EQ(children_.size(), child_rvas_.size()); |
WritableIoVec iov; |
- iov.iov_base = &rva_list_base_; |
- iov.iov_len = sizeof(rva_list_base_); |
+ iov.iov_base = rva_list_base_.get(); |
+ iov.iov_len = sizeof(*rva_list_base_); |
std::vector<WritableIoVec> iovecs(1, iov); |
if (!child_rvas_.empty()) { |