Skip to content

Commit 913f7b0

Browse files
Breaking change: Remove MutableRepeatedFieldRef::Reserve() in reflection (roll forward)
An upcoming performance improvement in RepeatedPtrField is incompatible with this API. The improvement is projected to accelerate repeated access to the elements of `RepeatedPtrField`, in particular and especially sequential access. PA: https://protobuf.dev/news/2024-12-13/ PiperOrigin-RevId: 708439051
1 parent 259e2ba commit 913f7b0

File tree

3 files changed

+0
-26
lines changed

3 files changed

+0
-26
lines changed

src/google/protobuf/reflection.h

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,6 @@ class MutableRepeatedFieldRef<
9797
}
9898
void Add(const T& value) const { accessor_->template Add<T>(data_, value); }
9999
void RemoveLast() const { accessor_->RemoveLast(data_); }
100-
// TODO: Remove.
101-
ABSL_DEPRECATED("Do not use. Will be removed in a future release.")
102-
void Reserve(int size) const { accessor_->Reserve(data_, size); }
103100
void SwapElements(int index1, int index2) const {
104101
accessor_->SwapElements(data_, index1, index2);
105102
}
@@ -218,9 +215,6 @@ class MutableRepeatedFieldRef<
218215
}
219216
void Add(const T& value) const { accessor_->Add(data_, &value); }
220217
void RemoveLast() const { accessor_->RemoveLast(data_); }
221-
// TODO: Remove.
222-
ABSL_DEPRECATED("Do not use. Will be removed in a future release.")
223-
void Reserve(int size) const { accessor_->Reserve(data_, size); }
224218
void SwapElements(int index1, int index2) const {
225219
accessor_->SwapElements(data_, index1, index2);
226220
}
@@ -308,9 +302,6 @@ class PROTOBUF_EXPORT RepeatedFieldAccessor {
308302
virtual void Set(Field* data, int index, const Value* value) const = 0;
309303
virtual void Add(Field* data, const Value* value) const = 0;
310304
virtual void RemoveLast(Field* data) const = 0;
311-
// TODO: Remove.
312-
ABSL_DEPRECATED("Do not use. Will be removed in a future release.")
313-
virtual void Reserve(Field* data, int size) const = 0;
314305
virtual void SwapElements(Field* data, int index1, int index2) const = 0;
315306
virtual void Swap(Field* data, const RepeatedFieldAccessor* other_mutator,
316307
Field* other_data) const = 0;

src/google/protobuf/reflection_internal.h

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,6 @@ class RepeatedFieldWrapper : public RandomAccessRepeatedFieldAccessor {
9393
void RemoveLast(Field* data) const override {
9494
MutableRepeatedField(data)->RemoveLast();
9595
}
96-
// TODO: Remove.
97-
void Reserve(Field* data, int size) const override {
98-
MutableRepeatedField(data)->Reserve(size);
99-
}
10096
void SwapElements(Field* data, int index1, int index2) const override {
10197
MutableRepeatedField(data)->SwapElements(index1, index2);
10298
}
@@ -153,10 +149,6 @@ class RepeatedPtrFieldWrapper : public RandomAccessRepeatedFieldAccessor {
153149
void RemoveLast(Field* data) const override {
154150
MutableRepeatedField(data)->RemoveLast();
155151
}
156-
// TODO: Remove.
157-
void Reserve(Field* data, int size) const override {
158-
MutableRepeatedField(data)->Reserve(size);
159-
}
160152
void SwapElements(Field* data, int index1, int index2) const override {
161153
MutableRepeatedField(data)->SwapElements(index1, index2);
162154
}
@@ -220,9 +212,6 @@ class MapFieldAccessor final : public RandomAccessRepeatedFieldAccessor {
220212
void RemoveLast(Field* data) const override {
221213
MutableRepeatedField(data)->RemoveLast();
222214
}
223-
void Reserve(Field* data, int size) const override {
224-
MutableRepeatedField(data)->Reserve(size);
225-
}
226215
void SwapElements(Field* data, int index1, int index2) const override {
227216
MutableRepeatedField(data)->SwapElements(index1, index2);
228217
}

src/google/protobuf/repeated_field_reflection_unittest.inc

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -339,12 +339,6 @@ TEST(REFLECTION_TEST, RepeatedFieldRefForRegularFields) {
339339
}
340340
EXPECT_EQ(10, index);
341341

342-
// Test MutableRepeatedFieldRef::Reserve()
343-
mrf_int32.Reserve(mrf_int32.size() + 1);
344-
mrf_double.Reserve(mrf_double.size() + 1);
345-
mrf_string.Reserve(mrf_string.size() + 1);
346-
mrf_foreign_message.Reserve(mrf_foreign_message.size() + 1);
347-
348342
// Test MutableRepeatedFieldRef::Add()
349343
mrf_int32.Add(1234);
350344
mrf_double.Add(1234.0);

0 commit comments

Comments
 (0)