@@ -55,6 +55,7 @@ namespace protobuf {
5555
5656class Message ;
5757class Reflection ;
58+ class DynamicMessage ;
5859
5960template <typename T>
6061struct WeakRepeatedPtrField ;
@@ -1029,9 +1030,11 @@ class ABSL_ATTRIBUTE_WARN_UNUSED RepeatedPtrField final
10291030 RepeatedPtrField&& rhs)
10301031 : RepeatedPtrField(arena, std::move(rhs)) {}
10311032
1033+ #ifndef PROTOBUF_FUTURE_REMOVE_REPEATED_PTR_FIELD_ARENA_CONSTRUCTOR
10321034 // TODO: make constructor private
10331035 [[deprecated(" Use Arena::Create<RepeatedPtrField<...>>(Arena*) instead" )]]
10341036 explicit RepeatedPtrField (Arena* arena);
1037+ #endif
10351038
10361039 template <typename Iter,
10371040 typename = typename std::enable_if<std::is_constructible<
@@ -1336,6 +1339,10 @@ class ABSL_ATTRIBUTE_WARN_UNUSED RepeatedPtrField final
13361339
13371340 friend class Arena ;
13381341
1342+ #ifdef PROTOBUF_FUTURE_REMOVE_REPEATED_PTR_FIELD_ARENA_CONSTRUCTOR
1343+ friend class DynamicMessage ;
1344+ #endif
1345+
13391346 friend class internal ::TcParser;
13401347
13411348 template <typename T>
@@ -1351,6 +1358,10 @@ class ABSL_ATTRIBUTE_WARN_UNUSED RepeatedPtrField final
13511358 RepeatedPtrField (Arena* arena, const RepeatedPtrField& rhs);
13521359 RepeatedPtrField (Arena* arena, RepeatedPtrField&& rhs);
13531360
1361+ #ifdef PROTOBUF_FUTURE_REMOVE_REPEATED_PTR_FIELD_ARENA_CONSTRUCTOR
1362+ explicit RepeatedPtrField (Arena* arena);
1363+ #endif
1364+
13541365
13551366 void AddAllocatedForParse (Element* p, Arena* arena) {
13561367 return RepeatedPtrFieldBase::AddAllocatedForParse (p, arena);
0 commit comments