Internal QUICHE change

PiperOrigin-RevId: 327247864
Change-Id: I65d20201ea9765434b8fd6a8a4da5f9cd292a2ea
diff --git a/quic/core/batch_writer/quic_batch_writer_test.cc b/quic/core/batch_writer/quic_batch_writer_test.cc
index 583b248..1100761 100644
--- a/quic/core/batch_writer/quic_batch_writer_test.cc
+++ b/quic/core/batch_writer/quic_batch_writer_test.cc
@@ -37,8 +37,7 @@
   }
 
   void ResetWriter(int fd) override {
-    writer_ = std::make_unique<QuicGsoBatchWriter>(
-        std::make_unique<QuicBatchWriterBuffer>(), fd);
+    writer_ = std::make_unique<QuicGsoBatchWriter>(fd);
   }
 
   QuicUdpBatchWriter* GetWriter() override { return writer_.get(); }
diff --git a/quic/core/batch_writer/quic_gso_batch_writer.cc b/quic/core/batch_writer/quic_gso_batch_writer.cc
index 5feb595..bda5fe2 100644
--- a/quic/core/batch_writer/quic_gso_batch_writer.cc
+++ b/quic/core/batch_writer/quic_gso_batch_writer.cc
@@ -12,16 +12,18 @@
 
 namespace quic {
 
-QuicGsoBatchWriter::QuicGsoBatchWriter(
-    std::unique_ptr<QuicBatchWriterBuffer> batch_buffer,
-    int fd)
-    : QuicGsoBatchWriter(std::move(batch_buffer), fd, CLOCK_MONOTONIC) {}
+// static
+std::unique_ptr<QuicBatchWriterBuffer>
+QuicGsoBatchWriter::CreateBatchWriterBuffer() {
+  return std::make_unique<QuicBatchWriterBuffer>();
+}
 
-QuicGsoBatchWriter::QuicGsoBatchWriter(
-    std::unique_ptr<QuicBatchWriterBuffer> batch_buffer,
-    int fd,
-    clockid_t clockid_for_release_time)
-    : QuicUdpBatchWriter(std::move(batch_buffer), fd),
+QuicGsoBatchWriter::QuicGsoBatchWriter(int fd)
+    : QuicGsoBatchWriter(fd, CLOCK_MONOTONIC) {}
+
+QuicGsoBatchWriter::QuicGsoBatchWriter(int fd,
+                                       clockid_t clockid_for_release_time)
+    : QuicUdpBatchWriter(CreateBatchWriterBuffer(), fd),
       clockid_for_release_time_(clockid_for_release_time),
       supports_release_time_(
           GetQuicRestartFlag(quic_support_release_time_for_gso) &&
diff --git a/quic/core/batch_writer/quic_gso_batch_writer.h b/quic/core/batch_writer/quic_gso_batch_writer.h
index ce8a71d..0c2fd1f 100644
--- a/quic/core/batch_writer/quic_gso_batch_writer.h
+++ b/quic/core/batch_writer/quic_gso_batch_writer.h
@@ -13,14 +13,11 @@
 // segmentation offload(GSO) capability.
 class QUIC_EXPORT_PRIVATE QuicGsoBatchWriter : public QuicUdpBatchWriter {
  public:
-  QuicGsoBatchWriter(std::unique_ptr<QuicBatchWriterBuffer> batch_buffer,
-                     int fd);
+  explicit QuicGsoBatchWriter(int fd);
 
   // |clockid_for_release_time|: FQ qdisc requires CLOCK_MONOTONIC, EDF requires
   // CLOCK_TAI.
-  QuicGsoBatchWriter(std::unique_ptr<QuicBatchWriterBuffer> batch_buffer,
-                     int fd,
-                     clockid_t clockid_for_release_time);
+  QuicGsoBatchWriter(int fd, clockid_t clockid_for_release_time);
 
   bool SupportsReleaseTime() const final { return supports_release_time_; }
 
@@ -109,6 +106,8 @@
   }
 
  private:
+  static std::unique_ptr<QuicBatchWriterBuffer> CreateBatchWriterBuffer();
+
   const clockid_t clockid_for_release_time_;
   const bool supports_release_time_;
 };
diff --git a/quic/core/batch_writer/quic_gso_batch_writer_test.cc b/quic/core/batch_writer/quic_gso_batch_writer_test.cc
index bc075b2..731b19f 100644
--- a/quic/core/batch_writer/quic_gso_batch_writer_test.cc
+++ b/quic/core/batch_writer/quic_gso_batch_writer_test.cc
@@ -276,8 +276,7 @@
 }
 
 TEST_F(QuicGsoBatchWriterTest, WriteSuccess) {
-  TestQuicGsoBatchWriter writer(std::make_unique<QuicBatchWriterBuffer>(),
-                                /*fd=*/-1);
+  TestQuicGsoBatchWriter writer(/*fd=*/-1);
 
   ASSERT_EQ(WriteResult(WRITE_STATUS_OK, 0), WritePacket(&writer, 1000));
 
@@ -292,8 +291,7 @@
 }
 
 TEST_F(QuicGsoBatchWriterTest, WriteBlockDataNotBuffered) {
-  TestQuicGsoBatchWriter writer(std::make_unique<QuicBatchWriterBuffer>(),
-                                /*fd=*/-1);
+  TestQuicGsoBatchWriter writer(/*fd=*/-1);
 
   ASSERT_EQ(WriteResult(WRITE_STATUS_OK, 0), WritePacket(&writer, 100));
   ASSERT_EQ(WriteResult(WRITE_STATUS_OK, 0), WritePacket(&writer, 100));
@@ -311,8 +309,7 @@
 }
 
 TEST_F(QuicGsoBatchWriterTest, WriteBlockDataBuffered) {
-  TestQuicGsoBatchWriter writer(std::make_unique<QuicBatchWriterBuffer>(),
-                                /*fd=*/-1);
+  TestQuicGsoBatchWriter writer(/*fd=*/-1);
 
   ASSERT_EQ(WriteResult(WRITE_STATUS_OK, 0), WritePacket(&writer, 100));
   ASSERT_EQ(WriteResult(WRITE_STATUS_OK, 0), WritePacket(&writer, 100));
@@ -330,8 +327,7 @@
 }
 
 TEST_F(QuicGsoBatchWriterTest, WriteErrorWithoutDataBuffered) {
-  TestQuicGsoBatchWriter writer(std::make_unique<QuicBatchWriterBuffer>(),
-                                /*fd=*/-1);
+  TestQuicGsoBatchWriter writer(/*fd=*/-1);
 
   ASSERT_EQ(WriteResult(WRITE_STATUS_OK, 0), WritePacket(&writer, 100));
   ASSERT_EQ(WriteResult(WRITE_STATUS_OK, 0), WritePacket(&writer, 100));
@@ -351,8 +347,7 @@
 }
 
 TEST_F(QuicGsoBatchWriterTest, WriteErrorAfterDataBuffered) {
-  TestQuicGsoBatchWriter writer(std::make_unique<QuicBatchWriterBuffer>(),
-                                /*fd=*/-1);
+  TestQuicGsoBatchWriter writer(/*fd=*/-1);
 
   ASSERT_EQ(WriteResult(WRITE_STATUS_OK, 0), WritePacket(&writer, 100));
   ASSERT_EQ(WriteResult(WRITE_STATUS_OK, 0), WritePacket(&writer, 100));
@@ -372,8 +367,7 @@
 }
 
 TEST_F(QuicGsoBatchWriterTest, FlushError) {
-  TestQuicGsoBatchWriter writer(std::make_unique<QuicBatchWriterBuffer>(),
-                                /*fd=*/-1);
+  TestQuicGsoBatchWriter writer(/*fd=*/-1);
 
   ASSERT_EQ(WriteResult(WRITE_STATUS_OK, 0), WritePacket(&writer, 100));
   ASSERT_EQ(WriteResult(WRITE_STATUS_OK, 0), WritePacket(&writer, 100));