Add a proper API to create memslices from the QUIC code.
Current API provides an (allocator, size) constructor. However, this just creates a buffer with random data in it and no way to change it, since memslices are read-only. Current code uses const_cast; this CL creates a proper API and updates all existing call sites to use it.
gfe-relnote: n/a (no functional change)
PiperOrigin-RevId: 287072774
Change-Id: Ie4dd2eae6db2ec91b087f5d41887ea3948ee411a
diff --git a/quic/quartc/quartc_multiplexer.cc b/quic/quartc/quartc_multiplexer.cc
index 3abc3cd..376fac0 100644
--- a/quic/quartc/quartc_multiplexer.cc
+++ b/quic/quartc/quartc_multiplexer.cc
@@ -7,6 +7,7 @@
#include <cstdint>
#include <utility>
+#include "net/third_party/quiche/src/quic/core/quic_buffer_allocator.h"
#include "net/third_party/quiche/src/quic/core/quic_data_writer.h"
#include "net/third_party/quiche/src/quic/platform/api/quic_mem_slice.h"
#include "net/third_party/quiche/src/quic/platform/api/quic_mem_slice_span.h"
@@ -95,10 +96,10 @@
}
QuicMemSlice QuartcSendChannel::EncodeChannelId() {
- QuicMemSlice id_slice(allocator_, encoded_length_);
- QuicDataWriter writer(encoded_length_, const_cast<char*>(id_slice.data()));
+ QuicUniqueBufferPtr buffer = MakeUniqueBuffer(allocator_, encoded_length_);
+ QuicDataWriter writer(encoded_length_, buffer.get());
writer.WriteVarInt62(id_);
- return id_slice;
+ return QuicMemSlice(std::move(buffer), encoded_length_);
}
QuartcMultiplexer::QuartcMultiplexer(