Skip to content

Commit 8a5a592

Browse files
committed
std::vec: convert .copy_memory to use copy_nonoverlapping_memory.
It is required that &mut[]s are disjoint from all other &(mut)[]s, so this assumption is ok.
1 parent 5c147cc commit 8a5a592

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

src/libstd/vec.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2060,7 +2060,7 @@ pub trait MutableVector<'a, T> {
20602060
*/
20612061
unsafe fn init_elem(self, i: uint, val: T);
20622062

2063-
/// Copies data from `src` to `self`
2063+
/// Copies data from `src` to `self`.
20642064
///
20652065
/// `self` and `src` must not overlap. Fails if `self` is
20662066
/// shorter than `src`.
@@ -2208,7 +2208,7 @@ impl<'a,T> MutableVector<'a, T> for &'a mut [T] {
22082208
self.as_mut_buf(|p_dst, len_dst| {
22092209
src.as_imm_buf(|p_src, len_src| {
22102210
assert!(len_dst >= len_src)
2211-
ptr::copy_memory(p_dst, p_src, len_src)
2211+
ptr::copy_nonoverlapping_memory(p_dst, p_src, len_src)
22122212
})
22132213
})
22142214
}
@@ -2350,10 +2350,10 @@ pub mod bytes {
23502350
}
23512351
}
23522352

2353-
/// Copies data from one vector to another.
2353+
/// Copies data from `src` to `dst`
23542354
///
2355-
/// Copies `src` to `dst`. Fails if the length of `dst` is less
2356-
/// than the length of `src`.
2355+
/// `src` and `dst` must not overlap. Fails if the length of `dst`
2356+
/// is less than the length of `src`.
23572357
#[inline]
23582358
pub fn copy_memory(dst: &mut [u8], src: &[u8]) {
23592359
// Bound checks are done at .copy_memory.

0 commit comments

Comments
 (0)