Skip to content

Commit

Permalink
Make preadv take immutable slice of IoVecs, fixes #913
Browse files Browse the repository at this point in the history
  • Loading branch information
farnoy committed Jun 11, 2018
1 parent 8a9b86e commit c54ff05
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 3 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Expand Up @@ -8,6 +8,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
### Added

### Changed
- Made `preadv` take immutable slice of IoVec. ([issue #913](https://github.com/nix-rust/nix/issues/913))

### Fixed

Expand Down
2 changes: 1 addition & 1 deletion src/sys/uio.rs
Expand Up @@ -51,7 +51,7 @@ pub fn pwritev(fd: RawFd, iov: &[IoVec<&[u8]>],
target_os = "linux",
target_os = "netbsd",
target_os = "openbsd"))]
pub fn preadv(fd: RawFd, iov: &mut [IoVec<&mut [u8]>],
pub fn preadv(fd: RawFd, iov: &[IoVec<&mut [u8]>],
offset: off_t) -> Result<usize> {
let res = unsafe {
libc::preadv(fd, iov.as_ptr() as *const libc::iovec, iov.len() as c_int, offset)
Expand Down
4 changes: 2 additions & 2 deletions test/sys/test_uio.rs
Expand Up @@ -182,9 +182,9 @@ fn test_preadv() {

{
// Borrow the buffers into IoVecs and preadv into them
let mut iovecs: Vec<_> = buffers.iter_mut().map(
let iovecs: Vec<_> = buffers.iter_mut().map(
|buf| IoVec::from_mut_slice(&mut buf[..])).collect();
assert_eq!(Ok(100), preadv(file.as_raw_fd(), &mut iovecs, 100));
assert_eq!(Ok(100), preadv(file.as_raw_fd(), &iovecs, 100));
}

let all = buffers.concat();
Expand Down

0 comments on commit c54ff05

Please sign in to comment.