diff options
| author | Ralf Jung <post@ralfj.de> | 2020-03-23 13:40:40 +0100 |
|---|---|---|
| committer | Ralf Jung <post@ralfj.de> | 2020-03-30 11:58:16 +0200 |
| commit | 6556549fa6d74791d1e3e155ae8a4d1480ea4481 (patch) | |
| tree | 8a62699bb02c156cfaf8ecc32042140a783fd956 /src/liballoc/vec.rs | |
| parent | 8926bb497d9b127eb318aea5aed0e745d8381591 (diff) | |
| download | rust-6556549fa6d74791d1e3e155ae8a4d1480ea4481.tar.gz rust-6556549fa6d74791d1e3e155ae8a4d1480ea4481.zip | |
fix Vec::extend invalidating unrelated pointers
Diffstat (limited to 'src/liballoc/vec.rs')
| -rw-r--r-- | src/liballoc/vec.rs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/liballoc/vec.rs b/src/liballoc/vec.rs index e171edef736..361ce20376d 100644 --- a/src/liballoc/vec.rs +++ b/src/liballoc/vec.rs @@ -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); } } } |
