Pass down `Arena*` to `RepeatedPtrFieldBase::ReleaseLast`.

PiperOrigin-RevId: 807466129
diff --git a/src/google/protobuf/generated_message_reflection.cc b/src/google/protobuf/generated_message_reflection.cc
index 5b7749f..8d4e5bf 100644
--- a/src/google/protobuf/generated_message_reflection.cc
+++ b/src/google/protobuf/generated_message_reflection.cc
@@ -1647,12 +1647,14 @@
         MutableExtensionSet(message)->ReleaseLast(field->number()));
   } else {
     if (IsMapFieldInApi(field)) {
-      released = MutableRaw<MapFieldBase>(message, field)
-                     ->MutableRepeatedField()
-                     ->ReleaseLast<GenericTypeHandler<Message>>();
+      released =
+          MutableRaw<MapFieldBase>(message, field)
+              ->MutableRepeatedField()
+              ->ReleaseLast<GenericTypeHandler<Message>>(message->GetArena());
     } else {
-      released = MutableRaw<RepeatedPtrFieldBase>(message, field)
-                     ->ReleaseLast<GenericTypeHandler<Message>>();
+      released =
+          MutableRaw<RepeatedPtrFieldBase>(message, field)
+              ->ReleaseLast<GenericTypeHandler<Message>>(message->GetArena());
     }
   }
   if (internal::DebugHardenForceCopyInRelease()) {
diff --git a/src/google/protobuf/repeated_ptr_field.h b/src/google/protobuf/repeated_ptr_field.h
index 6d7d082..8bafe06 100644
--- a/src/google/protobuf/repeated_ptr_field.h
+++ b/src/google/protobuf/repeated_ptr_field.h
@@ -505,10 +505,10 @@
   }
 
   template <typename TypeHandler>
-  PROTOBUF_FUTURE_ADD_NODISCARD Value<TypeHandler>* ReleaseLast() {
+  PROTOBUF_FUTURE_ADD_NODISCARD Value<TypeHandler>* ReleaseLast(Arena* arena) {
+    ABSL_DCHECK_EQ(arena, GetArena());
     Value<TypeHandler>* result = UnsafeArenaReleaseLast<TypeHandler>();
     // Now perform a copy if we're on an arena.
-    Arena* arena = GetArena();
 
     if (internal::DebugHardenForceCopyInRelease()) {
       auto* new_result = copy<TypeHandler>(result);
@@ -1688,7 +1688,7 @@
 
 template <typename Element>
 inline Element* RepeatedPtrField<Element>::ReleaseLast() {
-  return RepeatedPtrFieldBase::ReleaseLast<TypeHandler>();
+  return RepeatedPtrFieldBase::ReleaseLast<TypeHandler>(GetArena());
 }
 
 template <typename Element>