tree 6345fdc126a7436444d6be910a989d02b5131462
parent b2ab503e6b42963f15fb4490608a44cb807e2eb1
author bnc <bnc@google.com> 1646327195 -0800
committer Copybara-Service <copybara-worker@google.com> 1646327247 -0800

Simplify QuicStreamSendBuffer::SaveStreamData().

This is a reland of cr/432178898 with the only difference at
quic_stream_send_buffer.cc:68.  The reason for revert at cr/432192634 was:

  quic_stream_send_buffer.cc:68:24: error: no matching function for call to 'min'
      size_t slice_len = std::min(data.length(), max_data_slice_size);
                         ^~~~~~~~

I was able to reproduce this error locally, and verify that adding an explicit template
parameter to std::min solves it, by the following command:

  blaze --blazerc=/dev/null test --config=android_x86 --compilation_mode=opt \
    --android_sdk=//third_party/java/android/android_sdk_linux/platforms/stable:android_sdk_tools \
    --incompatible_enable_android_toolchain_resolution=1 \
    --//third_party/android/ndk:min_sdk_version=28 \
    --incompatible_enable_cc_toolchain_resolution=1 \
    --android_grte_top=//third_party/android/ndk/platforms/android-28:everything \
    --define='PORTABLE_PROTO_TRANSITION_MODE=google3' \
    --grte_top=//third_party/android/ndk/platforms/android-28:everything \
    //vr/c9/client/ar:c9_ar_app_test_x86

SaveStreamData()is called at two places in production:
QuicCryptoStream::WriteCryptoData() and QuicStream::WriteOrBufferDataAtLevel(),
both times with an iovec created locally from an absl::string_view.  In order to
reduce complexity, this CL changes SaveStreamData() to take an absl::string_view
directly instead of an iovec.
PiperOrigin-RevId: 432207712
