diff --git a/src/google/protobuf/generated_message_tctable_lite.cc b/src/google/protobuf/generated_message_tctable_lite.cc index 1db5018bc0..868cf57e5f 100644 --- a/src/google/protobuf/generated_message_tctable_lite.cc +++ b/src/google/protobuf/generated_message_tctable_lite.cc @@ -2270,10 +2270,8 @@ PROTOBUF_NOINLINE const char* TcParser::MpString(PROTOBUF_TC_PARAM_DECL) { absl::Cord* field; if (is_oneof) { if (need_init) { - field = new absl::Cord; + field = Arena::Create(msg->GetArenaForAllocation()); RefAt(msg, entry.offset) = field; - Arena* arena = msg->GetArenaForAllocation(); - if (arena) arena->Own(field); } else { field = RefAt(msg, entry.offset); }