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