diff --git a/src/google/protobuf/port_def.inc b/src/google/protobuf/port_def.inc index d9bf569096..a969269704 100644 --- a/src/google/protobuf/port_def.inc +++ b/src/google/protobuf/port_def.inc @@ -217,6 +217,10 @@ static_assert(PROTOBUF_CPLUSPLUS_MIN(201402L), "Protobuf only supports C++14 and // Owner: mvels@, mkruskal@ #define PROTOBUF_FUTURE_OPENSOURCE_CORD 1 +// Used to remove `RepeatedPtrField::GetArena() const`. +// Owner: ezb@ +#define PROTOBUF_FUTURE_REMOVE_CONST_REPEATEDFIELD_GETARENA_API 1 + #endif #ifdef PROTOBUF_VERSION diff --git a/src/google/protobuf/repeated_ptr_field.h b/src/google/protobuf/repeated_ptr_field.h index bb5ed22ea5..2265cf5dcc 100644 --- a/src/google/protobuf/repeated_ptr_field.h +++ b/src/google/protobuf/repeated_ptr_field.h @@ -1185,8 +1185,10 @@ class RepeatedPtrField final : private internal::RepeatedPtrFieldBase { // Gets the arena on which this RepeatedPtrField stores its elements. inline Arena* GetArena(); +#ifndef PROTOBUF_FUTURE_REMOVE_CONST_REPEATEDFIELD_GETARENA_API ABSL_DEPRECATED("This will be removed in a future release") inline Arena* GetArena() const; +#endif // !PROTOBUF_FUTURE_REMOVE_CONST_REPEATEDFIELD_GETARENA_API // For internal use only. // @@ -1552,10 +1554,12 @@ inline Arena* RepeatedPtrField::GetArena() { return RepeatedPtrFieldBase::GetArena(); } +#ifndef PROTOBUF_FUTURE_REMOVE_CONST_REPEATEDFIELD_GETARENA_API template inline Arena* RepeatedPtrField::GetArena() const { return RepeatedPtrFieldBase::GetArena(); } +#endif // !PROTOBUF_FUTURE_REMOVE_CONST_REPEATEDFIELD_GETARENA_API template inline Arena* RepeatedPtrField::GetOwningArena() const {