Remove deprecated unused QuicStreamSequencer::PrefetchNextRegion() method. gfe-relnote: n/a, remove unused code. PiperOrigin-RevId: 265911298 Change-Id: I3910accb6fae7437b946348277e751c0adaf20cc
diff --git a/quic/core/quic_stream_sequencer.cc b/quic/core/quic_stream_sequencer.cc index fb89821..dc7b0cd 100644 --- a/quic/core/quic_stream_sequencer.cc +++ b/quic/core/quic_stream_sequencer.cc
@@ -169,11 +169,6 @@ return buffered_frames_.PeekRegion(offset, iov); } -bool QuicStreamSequencer::PrefetchNextRegion(iovec* iov) { - DCHECK(!blocked_); - return buffered_frames_.PrefetchNextRegion(iov); -} - void QuicStreamSequencer::Read(std::string* buffer) { DCHECK(!blocked_); buffer->resize(buffer->size() + ReadableBytes());
diff --git a/quic/core/quic_stream_sequencer.h b/quic/core/quic_stream_sequencer.h index e08a141..a735a1e 100644 --- a/quic/core/quic_stream_sequencer.h +++ b/quic/core/quic_stream_sequencer.h
@@ -86,10 +86,6 @@ // not been received yet or has already been consumed. bool PeekRegion(QuicStreamOffset offset, iovec* iov) const; - // Fills in one iovec with the next unread region. - // Returns false if no readable region is available. - bool PrefetchNextRegion(iovec* iov); - // Copies the data into the iov_len buffers provided. Returns the number of // bytes read. Any buffered data no longer in use will be released. // TODO(rch): remove this method and instead implement it as a helper method
diff --git a/quic/core/quic_stream_sequencer_buffer.cc b/quic/core/quic_stream_sequencer_buffer.cc index e68925b..89a6ad7 100644 --- a/quic/core/quic_stream_sequencer_buffer.cc +++ b/quic/core/quic_stream_sequencer_buffer.cc
@@ -33,8 +33,7 @@ : max_buffer_capacity_bytes_(max_capacity_bytes), blocks_count_(CalculateBlockCount(max_capacity_bytes)), total_bytes_read_(0), - blocks_(nullptr), - total_bytes_prefetched_(0) { + blocks_(nullptr) { Clear(); } @@ -53,7 +52,6 @@ num_bytes_buffered_ = 0; bytes_received_.Clear(); bytes_received_.Add(0, total_bytes_read_); - total_bytes_prefetched_ = total_bytes_read_; } bool QuicStreamSequencerBuffer::RetireBlock(size_t idx) { @@ -267,8 +265,6 @@ } } } - total_bytes_prefetched_ = - std::max(total_bytes_prefetched_, total_bytes_read_); return QUIC_NO_ERROR; } @@ -367,19 +363,6 @@ return true; } -bool QuicStreamSequencerBuffer::PrefetchNextRegion(iovec* iov) { - DCHECK(iov); - DCHECK_LE(total_bytes_read_, total_bytes_prefetched_); - DCHECK_LE(total_bytes_prefetched_, FirstMissingByte()); - - if (!PeekRegion(total_bytes_prefetched_, iov)) { - return false; - } - - total_bytes_prefetched_ += iov->iov_len; - return true; -} - bool QuicStreamSequencerBuffer::MarkConsumed(size_t bytes_used) { if (bytes_used > ReadableBytes()) { return false; @@ -400,8 +383,7 @@ RetireBlockIfEmpty(block_idx); } } - total_bytes_prefetched_ = - std::max(total_bytes_read_, total_bytes_prefetched_); + return true; }
diff --git a/quic/core/quic_stream_sequencer_buffer.h b/quic/core/quic_stream_sequencer_buffer.h index b0478c0..93b723f 100644 --- a/quic/core/quic_stream_sequencer_buffer.h +++ b/quic/core/quic_stream_sequencer_buffer.h
@@ -137,16 +137,6 @@ // Does not consume data. bool PeekRegion(QuicStreamOffset offset, iovec* iov) const; - // DEPRECATED, use PeekRegion() instead. - // Called to return the next region that has not been returned by this method - // previously, except if Clear() has been called then prefetch offset is set - // to BytesConsumed(), and if Readv() or MarkConsumed() reads further than - // prefetch offset, then offset is set to beginning of not yet consumed area. - // This method only returns reference of underlying data. The caller is - // responsible for copying and consuming the data. - // Returns true if the data is read, false otherwise. - bool PrefetchNextRegion(iovec* iov); - // Called after GetReadableRegions() to free up |bytes_used| space if these // bytes are processed. // Pre-requisite: bytes_used <= available bytes to read. @@ -243,10 +233,8 @@ // Currently received data. QuicIntervalSet<QuicStreamOffset> bytes_received_; - - // Total number of bytes that have been prefetched. - QuicStreamOffset total_bytes_prefetched_; }; + } // namespace quic #endif // QUICHE_QUIC_CORE_QUIC_STREAM_SEQUENCER_BUFFER_H_
diff --git a/quic/core/quic_stream_sequencer_buffer_test.cc b/quic/core/quic_stream_sequencer_buffer_test.cc index 20dbe05..a7872dd 100644 --- a/quic/core/quic_stream_sequencer_buffer_test.cc +++ b/quic/core/quic_stream_sequencer_buffer_test.cc
@@ -583,101 +583,6 @@ IovecToStringPiece(iov)); } -TEST_F(QuicStreamSequencerBufferTest, PrefetchEmptyBuffer) { - iovec iov; - EXPECT_FALSE(buffer_->PrefetchNextRegion(&iov)); -} - -TEST_F(QuicStreamSequencerBufferTest, PrefetchInitialBuffer) { - std::string source(kBlockSizeBytes, 'a'); - buffer_->OnStreamData(0, source, &written_, &error_details_); - iovec iov; - EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov)); - EXPECT_EQ(source, IovecToStringPiece(iov)); -} - -TEST_F(QuicStreamSequencerBufferTest, PrefetchBufferWithOffset) { - std::string source(1024, 'a'); - buffer_->OnStreamData(0, source, &written_, &error_details_); - iovec iov; - EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov)); - EXPECT_EQ(source, IovecToStringPiece(iov)); - // The second frame goes into the same block. - std::string source2(800, 'a'); - buffer_->OnStreamData(1024, source2, &written_, &error_details_); - EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov)); - EXPECT_EQ(source2, IovecToStringPiece(iov)); -} - -TEST_F(QuicStreamSequencerBufferTest, PrefetchBufferWithMultipleBlocks) { - const size_t data_size = 1024; - std::string source(data_size, 'a'); - buffer_->OnStreamData(0, source, &written_, &error_details_); - iovec iov; - EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov)); - EXPECT_EQ(source, IovecToStringPiece(iov)); - std::string source2(kBlockSizeBytes, 'b'); - buffer_->OnStreamData(data_size, source2, &written_, &error_details_); - EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov)); - EXPECT_EQ(std::string(kBlockSizeBytes - data_size, 'b'), - IovecToStringPiece(iov)); - EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov)); - EXPECT_EQ(std::string(data_size, 'b'), IovecToStringPiece(iov)); -} - -TEST_F(QuicStreamSequencerBufferTest, PrefetchBufferAfterBlockRetired) { - std::string source(kBlockSizeBytes, 'a'); - buffer_->OnStreamData(0, source, &written_, &error_details_); - iovec iov; - EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov)); - EXPECT_EQ(source, IovecToStringPiece(iov)); - // Read the whole block so it's retired. - char dest[kBlockSizeBytes]; - helper_->Read(dest, kBlockSizeBytes); - - std::string source2(300, 'b'); - buffer_->OnStreamData(kBlockSizeBytes, source2, &written_, &error_details_); - - EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov)); - EXPECT_EQ(source2, IovecToStringPiece(iov)); -} - -TEST_F(QuicStreamSequencerBufferTest, PrefetchContinously) { - std::string source(kBlockSizeBytes, 'a'); - buffer_->OnStreamData(0, source, &written_, &error_details_); - iovec iov; - EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov)); - EXPECT_EQ(source, IovecToStringPiece(iov)); - std::string source2(kBlockSizeBytes, 'b'); - buffer_->OnStreamData(kBlockSizeBytes, source2, &written_, &error_details_); - EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov)); - EXPECT_EQ(source2, IovecToStringPiece(iov)); -} - -TEST_F(QuicStreamSequencerBufferTest, ConsumeMoreThanPrefetch) { - std::string source(100, 'a'); - buffer_->OnStreamData(0, source, &written_, &error_details_); - char dest[30]; - helper_->Read(dest, 30); - iovec iov; - EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov)); - EXPECT_EQ(std::string(70, 'a'), IovecToStringPiece(iov)); - std::string source2(100, 'b'); - buffer_->OnStreamData(100, source2, &written_, &error_details_); - buffer_->MarkConsumed(100); - EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov)); - EXPECT_EQ(std::string(70, 'b'), IovecToStringPiece(iov)); -} - -TEST_F(QuicStreamSequencerBufferTest, PrefetchMoreThanBufferHas) { - std::string source(100, 'a'); - buffer_->OnStreamData(0, source, &written_, &error_details_); - iovec iov; - EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov)); - EXPECT_EQ(std::string(100, 'a'), IovecToStringPiece(iov)); - EXPECT_FALSE(buffer_->PrefetchNextRegion(&iov)); -} - TEST_F(QuicStreamSequencerBufferTest, PeekEmptyBuffer) { iovec iov; EXPECT_FALSE(buffer_->PeekRegion(0, &iov)); @@ -1179,29 +1084,6 @@ EXPECT_LE(bytes_to_buffer_, total_bytes_written_); } -// Regression test for https://crbug.com/969391. -TEST_F(QuicStreamSequencerBufferTest, PrefetchAfterClear) { - // Write a few bytes. - const std::string kData("foo"); - EXPECT_EQ(QUIC_NO_ERROR, buffer_->OnStreamData(/* offset = */ 0, kData, - &written_, &error_details_)); - EXPECT_EQ(kData.size(), written_); - - // Prefetch all buffered data. - iovec iov; - EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov)); - EXPECT_EQ(kData, IovecToStringPiece(iov)); - - // No more data to prefetch. - EXPECT_FALSE(buffer_->PrefetchNextRegion(&iov)); - - // Clear all buffered data. - buffer_->Clear(); - - // Still no data to prefetch. - EXPECT_FALSE(buffer_->PrefetchNextRegion(&iov)); -} - } // anonymous namespace } // namespace test