use mutable reference
This commit is contained in:
parent
9159b1eef8
commit
ab32084ddb
1 changed files with 3 additions and 3 deletions
|
|
@ -74,7 +74,7 @@ fn vec_reallocate() -> Vec<u8> {
|
|||
fn vec_push_ptr_stable() {
|
||||
let mut v = Vec::with_capacity(10);
|
||||
v.push(0);
|
||||
let v0 = unsafe { &*(&v[0] as *const _) }; // laundering the lifetime -- we take care that `v` does not reallocate, so that's okay.
|
||||
let v0 = unsafe { &mut *(&mut v[0] as *mut _) }; // laundering the lifetime -- we take care that `v` does not reallocate, so that's okay.
|
||||
v.push(1);
|
||||
let _val = *v0;
|
||||
}
|
||||
|
|
@ -82,7 +82,7 @@ fn vec_push_ptr_stable() {
|
|||
fn vec_extend_ptr_stable() {
|
||||
let mut v = Vec::with_capacity(10);
|
||||
v.push(0);
|
||||
let v0 = unsafe { &*(&v[0] as *const _) }; // laundering the lifetime -- we take care that `v` does not reallocate, so that's okay.
|
||||
let v0 = unsafe { &mut *(&mut v[0] as *mut _) }; // laundering the lifetime -- we take care that `v` does not reallocate, so that's okay.
|
||||
// `slice::Iter` (with `T: Copy`) specialization
|
||||
v.extend(&[1]);
|
||||
let _val = *v0;
|
||||
|
|
@ -99,7 +99,7 @@ fn vec_extend_ptr_stable() {
|
|||
|
||||
fn vec_truncate_ptr_stable() {
|
||||
let mut v = vec![0; 10];
|
||||
let v0 = unsafe { &*(&v[0] as *const _) }; // laundering the lifetime -- we take care that `v` does not reallocate, so that's okay.
|
||||
let v0 = unsafe { &mut *(&mut v[0] as *mut _) }; // laundering the lifetime -- we take care that `v` does not reallocate, so that's okay.
|
||||
v.truncate(5);
|
||||
let _val = *v0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue