From 47d00200fa0a7c0e9925acfb669ac8c3a3887298 Mon Sep 17 00:00:00 2001 From: Stepan Koltsov Date: Mon, 18 Aug 2025 19:41:00 +0100 Subject: [PATCH] Reserve capacity in BytesMut::put Copy-paste code from Vec::put https://github.com/tokio-rs/bytes/blob/3e44f88f5fae6dfcd3aa0779b804b3ff18afdee3/src/buf/buf_mut.rs#L1645-L1646 --- src/bytes_mut.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/bytes_mut.rs b/src/bytes_mut.rs index ad3aa775d..d8d04d37b 100644 --- a/src/bytes_mut.rs +++ b/src/bytes_mut.rs @@ -1210,6 +1210,9 @@ unsafe impl BufMut for BytesMut { Err(bytes) => self.extend_from_slice(&bytes), } } else { + // In case the src isn't contiguous, reserve upfront. + self.reserve(src.remaining()); + while src.has_remaining() { let s = src.chunk(); let l = s.len();