| Index: third_party/protobuf/src/google/protobuf/unknown_field_set.cc
|
| diff --git a/third_party/protobuf/src/google/protobuf/unknown_field_set.cc b/third_party/protobuf/src/google/protobuf/unknown_field_set.cc
|
| index d4e383da234a0c55b88d5b3b6b29726d4fa3a9bd..9472c4fa5f4c4c7b67a31f63a2702f2942414a8f 100644
|
| --- a/third_party/protobuf/src/google/protobuf/unknown_field_set.cc
|
| +++ b/third_party/protobuf/src/google/protobuf/unknown_field_set.cc
|
| @@ -39,6 +39,7 @@
|
| #include <google/protobuf/io/coded_stream.h>
|
| #include <google/protobuf/io/zero_copy_stream.h>
|
| #include <google/protobuf/io/zero_copy_stream_impl.h>
|
| +#include <google/protobuf/metadata.h>
|
| #include <google/protobuf/wire_format.h>
|
| #include <google/protobuf/stubs/stl_util.h>
|
|
|
| @@ -69,34 +70,20 @@ const UnknownFieldSet* UnknownFieldSet::default_instance() {
|
| return default_unknown_field_set_instance_;
|
| }
|
|
|
| -UnknownFieldSet::UnknownFieldSet()
|
| - : fields_(NULL) {}
|
| -
|
| -UnknownFieldSet::~UnknownFieldSet() {
|
| - Clear();
|
| - delete fields_;
|
| -}
|
| -
|
| void UnknownFieldSet::ClearFallback() {
|
| - if (fields_ != NULL) {
|
| - for (int i = 0; i < fields_->size(); i++) {
|
| - (*fields_)[i].Delete();
|
| - }
|
| - delete fields_;
|
| - fields_ = NULL;
|
| - }
|
| -}
|
| -
|
| -void UnknownFieldSet::ClearAndFreeMemory() {
|
| - if (fields_ != NULL) {
|
| - Clear();
|
| - }
|
| + GOOGLE_DCHECK(fields_ != NULL && fields_->size() > 0);
|
| + int n = fields_->size();
|
| + do {
|
| + (*fields_)[--n].Delete();
|
| + } while (n > 0);
|
| + delete fields_;
|
| + fields_ = NULL;
|
| }
|
|
|
| void UnknownFieldSet::InternalMergeFrom(const UnknownFieldSet& other) {
|
| int other_field_count = other.field_count();
|
| if (other_field_count > 0) {
|
| - fields_ = new vector<UnknownField>();
|
| + fields_ = new std::vector<UnknownField>();
|
| for (int i = 0; i < other_field_count; i++) {
|
| fields_->push_back((*other.fields_)[i]);
|
| fields_->back().DeepCopy((*other.fields_)[i]);
|
| @@ -107,7 +94,7 @@ void UnknownFieldSet::InternalMergeFrom(const UnknownFieldSet& other) {
|
| void UnknownFieldSet::MergeFrom(const UnknownFieldSet& other) {
|
| int other_field_count = other.field_count();
|
| if (other_field_count > 0) {
|
| - if (fields_ == NULL) fields_ = new vector<UnknownField>();
|
| + if (fields_ == NULL) fields_ = new std::vector<UnknownField>();
|
| for (int i = 0; i < other_field_count; i++) {
|
| fields_->push_back((*other.fields_)[i]);
|
| fields_->back().DeepCopy((*other.fields_)[i]);
|
| @@ -120,7 +107,7 @@ void UnknownFieldSet::MergeFrom(const UnknownFieldSet& other) {
|
| void UnknownFieldSet::MergeFromAndDestroy(UnknownFieldSet* other) {
|
| int other_field_count = other->field_count();
|
| if (other_field_count > 0) {
|
| - if (fields_ == NULL) fields_ = new vector<UnknownField>();
|
| + if (fields_ == NULL) fields_ = new std::vector<UnknownField>();
|
| for (int i = 0; i < other_field_count; i++) {
|
| fields_->push_back((*other->fields_)[i]);
|
| (*other->fields_)[i].Reset();
|
| @@ -130,6 +117,12 @@ void UnknownFieldSet::MergeFromAndDestroy(UnknownFieldSet* other) {
|
| other->fields_ = NULL;
|
| }
|
|
|
| +void UnknownFieldSet::MergeToInternalMetdata(
|
| + const UnknownFieldSet& other,
|
| + internal::InternalMetadataWithArena* metadata) {
|
| + metadata->mutable_unknown_fields()->MergeFrom(other);
|
| +}
|
| +
|
| int UnknownFieldSet::SpaceUsedExcludingSelf() const {
|
| if (fields_ == NULL) return 0;
|
|
|
| @@ -162,7 +155,7 @@ void UnknownFieldSet::AddVarint(int number, uint64 value) {
|
| field.number_ = number;
|
| field.SetType(UnknownField::TYPE_VARINT);
|
| field.varint_ = value;
|
| - if (fields_ == NULL) fields_ = new vector<UnknownField>();
|
| + if (fields_ == NULL) fields_ = new std::vector<UnknownField>();
|
| fields_->push_back(field);
|
| }
|
|
|
| @@ -171,7 +164,7 @@ void UnknownFieldSet::AddFixed32(int number, uint32 value) {
|
| field.number_ = number;
|
| field.SetType(UnknownField::TYPE_FIXED32);
|
| field.fixed32_ = value;
|
| - if (fields_ == NULL) fields_ = new vector<UnknownField>();
|
| + if (fields_ == NULL) fields_ = new std::vector<UnknownField>();
|
| fields_->push_back(field);
|
| }
|
|
|
| @@ -180,7 +173,7 @@ void UnknownFieldSet::AddFixed64(int number, uint64 value) {
|
| field.number_ = number;
|
| field.SetType(UnknownField::TYPE_FIXED64);
|
| field.fixed64_ = value;
|
| - if (fields_ == NULL) fields_ = new vector<UnknownField>();
|
| + if (fields_ == NULL) fields_ = new std::vector<UnknownField>();
|
| fields_->push_back(field);
|
| }
|
|
|
| @@ -189,7 +182,7 @@ string* UnknownFieldSet::AddLengthDelimited(int number) {
|
| field.number_ = number;
|
| field.SetType(UnknownField::TYPE_LENGTH_DELIMITED);
|
| field.length_delimited_.string_value_ = new string;
|
| - if (fields_ == NULL) fields_ = new vector<UnknownField>();
|
| + if (fields_ == NULL) fields_ = new std::vector<UnknownField>();
|
| fields_->push_back(field);
|
| return field.length_delimited_.string_value_;
|
| }
|
| @@ -200,13 +193,13 @@ UnknownFieldSet* UnknownFieldSet::AddGroup(int number) {
|
| field.number_ = number;
|
| field.SetType(UnknownField::TYPE_GROUP);
|
| field.group_ = new UnknownFieldSet;
|
| - if (fields_ == NULL) fields_ = new vector<UnknownField>();
|
| + if (fields_ == NULL) fields_ = new std::vector<UnknownField>();
|
| fields_->push_back(field);
|
| return field.group_;
|
| }
|
|
|
| void UnknownFieldSet::AddField(const UnknownField& field) {
|
| - if (fields_ == NULL) fields_ = new vector<UnknownField>();
|
| + if (fields_ == NULL) fields_ = new std::vector<UnknownField>();
|
| fields_->push_back(field);
|
| fields_->back().DeepCopy(field);
|
| }
|
|
|