Commit a1b286e2 authored by Markov Vladislav's avatar Markov Vladislav Committed by Adam Cozzette

Simplify string_values_ vector in default_value_objectwriter

parent 8bdecd74
...@@ -71,9 +71,6 @@ DefaultValueObjectWriter::DefaultValueObjectWriter( ...@@ -71,9 +71,6 @@ DefaultValueObjectWriter::DefaultValueObjectWriter(
ow_(ow) {} ow_(ow) {}
DefaultValueObjectWriter::~DefaultValueObjectWriter() { DefaultValueObjectWriter::~DefaultValueObjectWriter() {
for (int i = 0; i < string_values_.size(); ++i) {
delete string_values_[i];
}
if (own_typeinfo_) { if (own_typeinfo_) {
delete typeinfo_; delete typeinfo_;
} }
...@@ -156,7 +153,7 @@ DefaultValueObjectWriter* DefaultValueObjectWriter::RenderString( ...@@ -156,7 +153,7 @@ DefaultValueObjectWriter* DefaultValueObjectWriter::RenderString(
} else { } else {
// Since StringPiece is essentially a pointer, takes a copy of "value" to // Since StringPiece is essentially a pointer, takes a copy of "value" to
// avoid ownership issues. // avoid ownership issues.
string_values_.push_back(new string(value)); string_values_.emplace_back(new string(value));
RenderDataPiece(name, DataPiece(*string_values_.back(), true)); RenderDataPiece(name, DataPiece(*string_values_.back(), true));
} }
return this; return this;
...@@ -169,7 +166,7 @@ DefaultValueObjectWriter* DefaultValueObjectWriter::RenderBytes( ...@@ -169,7 +166,7 @@ DefaultValueObjectWriter* DefaultValueObjectWriter::RenderBytes(
} else { } else {
// Since StringPiece is essentially a pointer, takes a copy of "value" to // Since StringPiece is essentially a pointer, takes a copy of "value" to
// avoid ownership issues. // avoid ownership issues.
string_values_.push_back(new string(value.ToString())); string_values_.emplace_back(new string(value));
RenderDataPiece(name, DataPiece(*string_values_.back(), false, true)); RenderDataPiece(name, DataPiece(*string_values_.back(), false, true));
} }
return this; return this;
......
...@@ -299,7 +299,7 @@ class PROTOBUF_EXPORT DefaultValueObjectWriter : public ObjectWriter { ...@@ -299,7 +299,7 @@ class PROTOBUF_EXPORT DefaultValueObjectWriter : public ObjectWriter {
// google::protobuf::Type of the root message type. // google::protobuf::Type of the root message type.
const google::protobuf::Type& type_; const google::protobuf::Type& type_;
// Holds copies of strings passed to RenderString. // Holds copies of strings passed to RenderString.
std::vector<std::string*> string_values_; std::vector<std::unique_ptr<std::string>> string_values_;
// The current Node. Owned by its parents. // The current Node. Owned by its parents.
Node* current_; Node* current_;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment