@@ -36,22 +36,24 @@ namespace google {
3636namespace protobuf {
3737
3838void UnknownFieldSet::ClearFallback () {
39- ABSL_DCHECK (!fields_.empty ());
39+ auto & fields = this ->fields ();
40+ ABSL_DCHECK (!fields.empty ());
4041 if (arena () == nullptr ) {
41- int n = fields_ .size ();
42+ int n = fields .size ();
4243 do {
43- (fields_) [--n].Delete ();
44+ fields [--n].Delete ();
4445 } while (n > 0 );
4546 }
46- fields_ .Clear ();
47+ fields .Clear ();
4748}
4849
4950void UnknownFieldSet::MergeFrom (const UnknownFieldSet& other) {
5051 int other_field_count = other.field_count ();
5152 if (other_field_count > 0 ) {
52- fields_.Reserve (fields_.size () + other_field_count);
53- for (auto elem : other.fields_ ) {
54- fields_.Add (elem.DeepCopy (arena ()));
53+ auto & fields = this ->fields ();
54+ fields.Reserve (fields.size () + other_field_count);
55+ for (auto elem : other.fields ()) {
56+ fields.Add (elem.DeepCopy (arena ()));
5557 }
5658 }
5759}
@@ -61,11 +63,16 @@ void UnknownFieldSet::MergeFrom(const UnknownFieldSet& other) {
6163void UnknownFieldSet::MergeFromAndDestroy (UnknownFieldSet* other) {
6264 if (arena () != other->arena ()) {
6365 MergeFrom (*other);
64- } else if (fields_.empty ()) {
65- fields_.Swap (&other->fields_ );
66+ return ;
67+ }
68+
69+ auto & fields = this ->fields ();
70+ auto & other_fields = other->fields ();
71+ if (fields.empty ()) {
72+ fields.Swap (&other_fields);
6673 } else {
67- fields_ .MergeFrom (other-> fields_ );
68- other-> fields_ .Clear ();
74+ fields .MergeFrom (other_fields );
75+ other_fields .Clear ();
6976 }
7077}
7178
@@ -75,11 +82,12 @@ void UnknownFieldSet::MergeToInternalMetadata(
7582}
7683
7784size_t UnknownFieldSet::SpaceUsedExcludingSelfLong () const {
78- if (fields_.empty ()) return 0 ;
85+ auto & fields = this ->fields ();
86+ if (fields.empty ()) return 0 ;
7987
80- size_t total_size = fields_ .SpaceUsedExcludingSelfLong ();
88+ size_t total_size = fields .SpaceUsedExcludingSelfLong ();
8189
82- for (const UnknownField& field : fields_ ) {
90+ for (const UnknownField& field : fields ) {
8391 switch (field.type ()) {
8492 case UnknownField::TYPE_LENGTH_DELIMITED:
8593 total_size += sizeof (*field.data_ .string_value ) +
@@ -101,21 +109,21 @@ size_t UnknownFieldSet::SpaceUsedLong() const {
101109}
102110
103111void UnknownFieldSet::AddVarint (int number, uint64_t value) {
104- auto & field = *fields_ .Add ();
112+ auto & field = *fields () .Add ();
105113 field.number_ = number;
106114 field.SetType (UnknownField::TYPE_VARINT);
107115 field.data_ .varint = value;
108116}
109117
110118void UnknownFieldSet::AddFixed32 (int number, uint32_t value) {
111- auto & field = *fields_ .Add ();
119+ auto & field = *fields () .Add ();
112120 field.number_ = number;
113121 field.SetType (UnknownField::TYPE_FIXED32);
114122 field.data_ .fixed32 = value;
115123}
116124
117125void UnknownFieldSet::AddFixed64 (int number, uint64_t value) {
118- auto & field = *fields_ .Add ();
126+ auto & field = *fields () .Add ();
119127 field.number_ = number;
120128 field.SetType (UnknownField::TYPE_FIXED64);
121129 field.data_ .fixed64 = value;
@@ -127,7 +135,7 @@ void UnknownFieldSet::AddLengthDelimited(int number, const absl::Cord& value) {
127135
128136template <int &...>
129137void UnknownFieldSet::AddLengthDelimited (int number, std::string&& value) {
130- auto & field = *fields_ .Add ();
138+ auto & field = *fields () .Add ();
131139 field.number_ = number;
132140 field.SetType (UnknownField::TYPE_LENGTH_DELIMITED);
133141 field.data_ .string_value =
@@ -136,51 +144,53 @@ void UnknownFieldSet::AddLengthDelimited(int number, std::string&& value) {
136144template void UnknownFieldSet::AddLengthDelimited (int , std::string&&);
137145
138146std::string* UnknownFieldSet::AddLengthDelimited (int number) {
139- auto & field = *fields_ .Add ();
147+ auto & field = *fields () .Add ();
140148 field.number_ = number;
141149 field.SetType (UnknownField::TYPE_LENGTH_DELIMITED);
142150 field.data_ .string_value = Arena::Create<std::string>(arena ());
143151 return field.data_ .string_value ;
144152}
145153
146154UnknownFieldSet* UnknownFieldSet::AddGroup (int number) {
147- auto & field = *fields_ .Add ();
155+ auto & field = *fields () .Add ();
148156 field.number_ = number;
149157 field.SetType (UnknownField::TYPE_GROUP);
150158 field.data_ .group = Arena::Create<UnknownFieldSet>(arena ());
151159 return field.data_ .group ;
152160}
153161
154162void UnknownFieldSet::AddField (const UnknownField& field) {
155- fields_ .Add (field.DeepCopy (arena ()));
163+ fields () .Add (field.DeepCopy (arena ()));
156164}
157165
158166void UnknownFieldSet::DeleteSubrange (int start, int num) {
167+ auto & fields = this ->fields ();
159168 if (arena () == nullptr ) {
160169 // Delete the specified fields.
161170 for (int i = 0 ; i < num; ++i) {
162- (fields_) [i + start].Delete ();
171+ fields [i + start].Delete ();
163172 }
164173 }
165- fields_ .ExtractSubrange (start, num, nullptr );
174+ fields .ExtractSubrange (start, num, nullptr );
166175}
167176
168177void UnknownFieldSet::DeleteByNumber (int number) {
178+ auto & fields = this ->fields ();
169179 int left = 0 ; // The number of fields left after deletion.
170- for (int i = 0 ; i < fields_ .size (); ++i) {
171- UnknownField* field = &(fields_) [i];
180+ for (int i = 0 ; i < fields .size (); ++i) {
181+ UnknownField* field = &fields [i];
172182 if (field->number () == number) {
173183 if (arena () == nullptr ) {
174184 field->Delete ();
175185 }
176186 } else {
177187 if (i != left) {
178- (fields_) [left] = (fields_) [i];
188+ fields [left] = fields [i];
179189 }
180190 ++left;
181191 }
182192 }
183- fields_ .Truncate (left);
193+ fields .Truncate (left);
184194}
185195
186196bool UnknownFieldSet::MergeFromCodedStream (io::CodedInputStream* input) {
0 commit comments