Fix io::Take::read_buf

This commit is contained in:
Benoît du Garreau 2024-05-22 11:37:02 +02:00
parent 9d6039ccae
commit ba3b536e20

View File

@ -2941,7 +2941,7 @@ impl<T: Read> Read for Take<T> {
}
let mut cursor = sliced_buf.unfilled();
self.inner.read_buf(cursor.reborrow())?;
let result = self.inner.read_buf(cursor.reborrow());
let new_init = cursor.init_ref().len();
let filled = sliced_buf.len();
@ -2956,13 +2956,14 @@ impl<T: Read> Read for Take<T> {
}
self.limit -= filled as u64;
result
} else {
let written = buf.written();
self.inner.read_buf(buf.reborrow())?;
let result = self.inner.read_buf(buf.reborrow());
self.limit -= (buf.written() - written) as u64;
result
}
Ok(())
}
}