diff options
| author | Huon Wilson <dbau.pp+github@gmail.com> | 2013-12-15 22:23:11 +1100 |
|---|---|---|
| committer | Huon Wilson <dbau.pp+github@gmail.com> | 2013-12-15 22:23:11 +1100 |
| commit | f97040a93b7320af9963660b24a4b60b8bdd461a (patch) | |
| tree | cf1bfeab8124874a58945c15495553c8c4fccd3c /src/libstd | |
| parent | 8f6df87c1d876895a7e313728b43d9710ae682bb (diff) | |
| download | rust-f97040a93b7320af9963660b24a4b60b8bdd461a.tar.gz rust-f97040a93b7320af9963660b24a4b60b8bdd461a.zip | |
std::vec: remove unnecessary count parameter on {bytes,
raw}::copy_memory. Slices carry their length with them, so we can just use that information.
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/c_str.rs | 2 | ||||
| -rw-r--r-- | src/libstd/io/buffered.rs | 4 | ||||
| -rw-r--r-- | src/libstd/io/comm_adapters.rs | 2 | ||||
| -rw-r--r-- | src/libstd/io/mem.rs | 10 | ||||
| -rw-r--r-- | src/libstd/vec.rs | 30 |
5 files changed, 20 insertions, 28 deletions
diff --git a/src/libstd/c_str.rs b/src/libstd/c_str.rs index 1563b7f99d1..f6f1c538c7b 100644 --- a/src/libstd/c_str.rs +++ b/src/libstd/c_str.rs @@ -293,7 +293,7 @@ impl<'a> ToCStr for &'a [u8] { unsafe fn with_c_str<T>(v: &[u8], checked: bool, f: |*libc::c_char| -> T) -> T { if v.len() < BUF_LEN { let mut buf: [u8, .. BUF_LEN] = intrinsics::uninit(); - vec::bytes::copy_memory(buf, v, v.len()); + vec::bytes::copy_memory(buf, v); buf[v.len()] = 0; buf.as_mut_buf(|buf, _| { diff --git a/src/libstd/io/buffered.rs b/src/libstd/io/buffered.rs index 04f4d50036f..1922af3a3b7 100644 --- a/src/libstd/io/buffered.rs +++ b/src/libstd/io/buffered.rs @@ -122,7 +122,7 @@ impl<R: Reader> Reader for BufferedReader<R> { return None; } let nread = num::min(available.len(), buf.len()); - vec::bytes::copy_memory(buf, available, nread); + vec::bytes::copy_memory(buf, available.slice_to(nread)); nread }; self.pos += nread; @@ -185,7 +185,7 @@ impl<W: Writer> Writer for BufferedWriter<W> { self.inner.write(buf); } else { let dst = self.buf.mut_slice_from(self.pos); - vec::bytes::copy_memory(dst, buf, buf.len()); + vec::bytes::copy_memory(dst, buf); self.pos += buf.len(); } } diff --git a/src/libstd/io/comm_adapters.rs b/src/libstd/io/comm_adapters.rs index a53146f0091..b3e5a9a0c86 100644 --- a/src/libstd/io/comm_adapters.rs +++ b/src/libstd/io/comm_adapters.rs @@ -57,7 +57,7 @@ impl<P: GenericPort<~[u8]>> Reader for PortReader<P> { let dst = buf.mut_slice_from(num_read); let src = prev.slice_from(self.pos); let count = cmp::min(dst.len(), src.len()); - bytes::copy_memory(dst, src, count); + bytes::copy_memory(dst, src.slice_to(count)); num_read += count; self.pos += count; }, diff --git a/src/libstd/io/mem.rs b/src/libstd/io/mem.rs index b6778d89c33..efb55a436ea 100644 --- a/src/libstd/io/mem.rs +++ b/src/libstd/io/mem.rs @@ -58,8 +58,7 @@ impl Writer for MemWriter { // Do the necessary writes if left.len() > 0 { - vec::bytes::copy_memory(self.buf.mut_slice_from(self.pos), - left, left.len()); + vec::bytes::copy_memory(self.buf.mut_slice_from(self.pos), left); } if right.len() > 0 { self.buf.push_all(right); @@ -116,7 +115,7 @@ impl Reader for MemReader { let input = self.buf.slice(self.pos, self.pos + write_len); let output = buf.mut_slice(0, write_len); assert_eq!(input.len(), output.len()); - vec::bytes::copy_memory(output, input, write_len); + vec::bytes::copy_memory(output, input); } self.pos += write_len; assert!(self.pos <= self.buf.len()); @@ -175,8 +174,7 @@ impl<'a> Writer for BufWriter<'a> { return; } - vec::bytes::copy_memory(self.buf.mut_slice_from(self.pos), - buf, buf.len()); + vec::bytes::copy_memory(self.buf.mut_slice_from(self.pos), buf); self.pos += buf.len(); } } @@ -222,7 +220,7 @@ impl<'a> Reader for BufReader<'a> { let input = self.buf.slice(self.pos, self.pos + write_len); let output = buf.mut_slice(0, write_len); assert_eq!(input.len(), output.len()); - vec::bytes::copy_memory(output, input, write_len); + vec::bytes::copy_memory(output, input); } self.pos += write_len; assert!(self.pos <= self.buf.len()); diff --git a/src/libstd/vec.rs b/src/libstd/vec.rs index c31e3b56444..ffd62c7a759 100644 --- a/src/libstd/vec.rs +++ b/src/libstd/vec.rs @@ -1631,7 +1631,7 @@ impl<T> OwnedVector<T> for ~[T] { { let first_slice = self.slice(0, 1); let last_slice = self.slice(next_ln, ln); - raw::copy_memory(cast::transmute(last_slice), first_slice, 1); + raw::copy_memory(cast::transmute(last_slice), first_slice); } // Memcopy everything to the left one element @@ -1639,8 +1639,7 @@ impl<T> OwnedVector<T> for ~[T] { let init_slice = self.slice(0, next_ln); let tail_slice = self.slice(1, ln); raw::copy_memory(cast::transmute(init_slice), - tail_slice, - next_ln); + tail_slice); } // Set the new length. Now the vector is back to normal @@ -2312,18 +2311,14 @@ pub mod raw { /** * Copies data from one vector to another. * - * Copies `count` bytes from `src` to `dst`. The source and destination - * may overlap. + * Copies `src` to `dst`. The source and destination may overlap. */ #[inline] - pub unsafe fn copy_memory<T>(dst: &mut [T], src: &[T], - count: uint) { - assert!(dst.len() >= count); - assert!(src.len() >= count); - - dst.as_mut_buf(|p_dst, _len_dst| { - src.as_imm_buf(|p_src, _len_src| { - ptr::copy_memory(p_dst, p_src, count) + pub unsafe fn copy_memory<T>(dst: &mut [T], src: &[T]) { + dst.as_mut_buf(|p_dst, len_dst| { + src.as_imm_buf(|p_src, len_src| { + assert!(len_dst >= len_src) + ptr::copy_memory(p_dst, p_src, len_src) }) }) } @@ -2419,13 +2414,12 @@ pub mod bytes { /** * Copies data from one vector to another. * - * Copies `count` bytes from `src` to `dst`. The source and destination - * may overlap. + * Copies `src` to `dst`. The source and destination may overlap. */ #[inline] - pub fn copy_memory(dst: &mut [u8], src: &[u8], count: uint) { + pub fn copy_memory(dst: &mut [u8], src: &[u8]) { // Bound checks are done at vec::raw::copy_memory. - unsafe { vec::raw::copy_memory(dst, src, count) } + unsafe { vec::raw::copy_memory(dst, src) } } /** @@ -3651,7 +3645,7 @@ mod tests { unsafe { let mut a = [1, 2, 3, 4]; let b = [1, 2, 3, 4, 5]; - raw::copy_memory(a, b, 5); + raw::copy_memory(a, b); } } |
