summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Okoński <jakub@okonski.org>2018-06-11 05:56:35 +0200
committerJakub Okoński <jakub@okonski.org>2018-07-03 20:17:22 +0200
commitdb4ea2bf78835cb547f8e2ea4d019cfb00e7a481 (patch)
treee5b68e2412265aaa89168f496b73468cb3f5c928
parent8a9b86eae2e14f5aec94f82ec3de6ca59a804f30 (diff)
downloadnix-db4ea2bf78835cb547f8e2ea4d019cfb00e7a481.zip
Make preadv take immutable slice of IoVecs, fixes #913
-rw-r--r--CHANGELOG.md2
-rw-r--r--src/sys/uio.rs2
-rw-r--r--test/sys/test_uio.rs4
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();