summary refs log tree commit diff
path: root/src/libstd/io
diff options
context:
space:
mode:
authorUlrik Sverdrup <bluss@users.noreply.github.com>2016-02-23 19:25:43 +0100
committerUlrik Sverdrup <bluss@users.noreply.github.com>2016-02-26 14:51:38 +0100
commit2d6496dd8432c71b65d67c7216fbd4428c06527b (patch)
treee82e379131bb08248dc4d625b19a3a53673957d4 /src/libstd/io
parent09130044ce7429beb95742afa7fd371960dbe607 (diff)
downloadrust-2d6496dd8432c71b65d67c7216fbd4428c06527b.tar.gz
rust-2d6496dd8432c71b65d67c7216fbd4428c06527b.zip
Use .copy_from_slice() where applicable
.copy_from_slice() does the same job of .clone_from_slice(), but the
former is explicitly for Copy elements and calls `memcpy` directly, and
thus is it efficient without optimization too.
Diffstat (limited to 'src/libstd/io')
-rw-r--r--src/libstd/io/cursor.rs2
-rw-r--r--src/libstd/io/impls.rs6
2 files changed, 4 insertions, 4 deletions
diff --git a/src/libstd/io/cursor.rs b/src/libstd/io/cursor.rs
index 4573f465819..420fede34d2 100644
--- a/src/libstd/io/cursor.rs
+++ b/src/libstd/io/cursor.rs
@@ -256,7 +256,7 @@ impl Write for Cursor<Vec<u8>> {
             let pos = pos as usize;
             let space = self.inner.len() - pos;
             let (left, right) = buf.split_at(cmp::min(space, buf.len()));
-            self.inner[pos..pos + left.len()].clone_from_slice(left);
+            self.inner[pos..pos + left.len()].copy_from_slice(left);
             self.inner.extend_from_slice(right);
         }
 
diff --git a/src/libstd/io/impls.rs b/src/libstd/io/impls.rs
index 592e16b0a3c..ec63f14d453 100644
--- a/src/libstd/io/impls.rs
+++ b/src/libstd/io/impls.rs
@@ -156,7 +156,7 @@ impl<'a> Read for &'a [u8] {
     fn read(&mut self, buf: &mut [u8]) -> io::Result<usize> {
         let amt = cmp::min(buf.len(), self.len());
         let (a, b) = self.split_at(amt);
-        buf[..amt].clone_from_slice(a);
+        buf[..amt].copy_from_slice(a);
         *self = b;
         Ok(amt)
     }
@@ -168,7 +168,7 @@ impl<'a> Read for &'a [u8] {
                                   "failed to fill whole buffer"));
         }
         let (a, b) = self.split_at(buf.len());
-        buf.clone_from_slice(a);
+        buf.copy_from_slice(a);
         *self = b;
         Ok(())
     }
@@ -189,7 +189,7 @@ impl<'a> Write for &'a mut [u8] {
     fn write(&mut self, data: &[u8]) -> io::Result<usize> {
         let amt = cmp::min(data.len(), self.len());
         let (a, b) = mem::replace(self, &mut []).split_at_mut(amt);
-        a.clone_from_slice(&data[..amt]);
+        a.copy_from_slice(&data[..amt]);
         *self = b;
         Ok(amt)
     }