From 0e2427cd3c52f251d135b7f8c0d73f93369b6e7e Mon Sep 17 00:00:00 2001 From: Jacob Kiesel Date: Tue, 5 Sep 2017 15:32:02 -0600 Subject: [PATCH] Remove unneeded copy --- src/liballoc/vec.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/liballoc/vec.rs b/src/liballoc/vec.rs index 8141851b8c9..158331af2ae 100644 --- a/src/liballoc/vec.rs +++ b/src/liballoc/vec.rs @@ -2691,7 +2691,8 @@ fn next(&mut self) -> Option { self.del += 1; return Some(ptr::read(&v[i])); } else if self.del > 0 { - v.swap(i - self.del, i); + let del = self.del; + ptr::copy_nonoverlapping(self.vec.as_ptr().offset(i), self.vec.as_mut_ptr().offset(i - del), 1); } } None -- GitLab