diff options
author | Jakub Okoński <jakub@okonski.org> | 2018-06-11 05:56:35 +0200 |
---|---|---|
committer | Jakub Okoński <jakub@okonski.org> | 2018-07-03 20:17:22 +0200 |
commit | db4ea2bf78835cb547f8e2ea4d019cfb00e7a481 (patch) | |
tree | e5b68e2412265aaa89168f496b73468cb3f5c928 | |
parent | 8a9b86eae2e14f5aec94f82ec3de6ca59a804f30 (diff) | |
download | nix-db4ea2bf78835cb547f8e2ea4d019cfb00e7a481.zip |
Make preadv take immutable slice of IoVecs, fixes #913
-rw-r--r-- | CHANGELOG.md | 2 | ||||
-rw-r--r-- | src/sys/uio.rs | 2 | ||||
-rw-r--r-- | test/sys/test_uio.rs | 4 |
3 files changed, 5 insertions, 3 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 69484bbf..240054bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,8 @@ This project adheres to [Semantic Versioning](http://semver.org/). ### Changed ### Fixed +- Made `preadv` take immutable slice of IoVec. + ([#914](https://github.com/nix-rust/nix/pull/914)) ### Removed diff --git a/src/sys/uio.rs b/src/sys/uio.rs index 305c2ad0..45860be5 100644 --- a/src/sys/uio.rs +++ b/src/sys/uio.rs @@ -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) diff --git a/test/sys/test_uio.rs b/test/sys/test_uio.rs index c6331f1d..9f56c810 100644 --- a/test/sys/test_uio.rs +++ b/test/sys/test_uio.rs @@ -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(); |