gfe-relnote: In QUIC, populate nonretransmittable_frames in SerializedPacket. Protected by gfe2_reloadable_flag_quic_populate_nonretransmittable_frames.
PiperOrigin-RevId: 275833395
Change-Id: I96d8663e89354a777cabb9e636eede9e61002d26
diff --git a/quic/core/quic_packets.cc b/quic/core/quic_packets.cc
index dfe80cf..216a37b 100644
--- a/quic/core/quic_packets.cc
+++ b/quic/core/quic_packets.cc
@@ -477,6 +477,7 @@
original_packet_number(other.original_packet_number),
largest_acked(other.largest_acked) {
retransmittable_frames.swap(other.retransmittable_frames);
+ nonretransmittable_frames.swap(other.nonretransmittable_frames);
}
SerializedPacket::~SerializedPacket() {}
@@ -485,6 +486,14 @@
if (!serialized_packet->retransmittable_frames.empty()) {
DeleteFrames(&serialized_packet->retransmittable_frames);
}
+ for (auto& frame : serialized_packet->nonretransmittable_frames) {
+ if (frame.type == ACK_FRAME) {
+ // Ack frame is owned by received_packet_manager.
+ continue;
+ }
+ DeleteFrame(&frame);
+ }
+ serialized_packet->nonretransmittable_frames.clear();
serialized_packet->encrypted_buffer = nullptr;
serialized_packet->encrypted_length = 0;
serialized_packet->largest_acked.Clear();