about summary refs log tree commit diff
path: root/src/libstd/io
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2016-01-17 12:23:57 +0000
committerbors <bors@rust-lang.org>2016-01-17 12:23:57 +0000
commitbff52927f582e2ca8dea799bd58f06e654295e21 (patch)
tree2286b17c8092d1e6a9a026ef979dd7ecd333b348 /src/libstd/io
parent0b524edb043c22a577968290fed1a4ff9936a28a (diff)
parent00a4eeadaf10156e2e2b7a0c050c2ca1ac826f76 (diff)
downloadrust-bff52927f582e2ca8dea799bd58f06e654295e21.tar.gz
rust-bff52927f582e2ca8dea799bd58f06e654295e21.zip
Auto merge of #30975 - Manishearth:rollup, r=Manishearth
- Successful merges: #30938, #30940, #30943, #30949, #30952, #30957, #30959
- Failed merges:
Diffstat (limited to 'src/libstd/io')
-rw-r--r--src/libstd/io/cursor.rs11
-rw-r--r--src/libstd/io/impls.rs2
2 files changed, 8 insertions, 5 deletions
diff --git a/src/libstd/io/cursor.rs b/src/libstd/io/cursor.rs
index de09451e7c0..4573f465819 100644
--- a/src/libstd/io/cursor.rs
+++ b/src/libstd/io/cursor.rs
@@ -252,10 +252,13 @@ impl Write for Cursor<Vec<u8>> {
 
         // Figure out what bytes will be used to overwrite what's currently
         // there (left), and what will be appended on the end (right)
-        let space = self.inner.len() - pos as usize;
-        let (left, right) = buf.split_at(cmp::min(space, buf.len()));
-        self.inner[(pos as usize)..].clone_from_slice(left);
-        self.inner.extend_from_slice(right);
+        {
+            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.extend_from_slice(right);
+        }
 
         // Bump us forward
         self.set_position(pos + buf.len() as u64);
diff --git a/src/libstd/io/impls.rs b/src/libstd/io/impls.rs
index 95f630c9658..592e16b0a3c 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.clone_from_slice(a);
+        buf[..amt].clone_from_slice(a);
         *self = b;
         Ok(amt)
     }