Fix io::Take::read_buf
This commit is contained in:
@@ -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(())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user