fix Vec::extend invalidating unrelated pointers

This commit is contained in:
Ralf Jung 2020-03-23 13:40:40 +01:00
parent 8926bb497d
commit 6556549fa6
1 changed files with 2 additions and 1 deletions

View File

@ -2122,8 +2122,9 @@ where
self.reserve(slice.len());
unsafe {
let len = self.len();
let dst_slice = slice::from_raw_parts_mut(self.as_mut_ptr().add(len), slice.len());
dst_slice.copy_from_slice(slice);
self.set_len(len + slice.len());
self.get_unchecked_mut(len..).copy_from_slice(slice);
}
}
}