We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
uninit
core::vec
vec previously had some code that looked like this:
vec
let vp: *T = ...; let v = move *vp;
This had the effect of memcpying *vp to v and zeroing *vp. move is being removed so this doesn't work. I've replaced that with:
*vp
v
move
let mut vp: *T = ...; let mut v: T = rusti::init(); // Create a zeroed value v <-> *vp;
This could probably be more efficient by 1) not zeroing the value (in most cases), 2) not doing the swap.
Probably this is what we should do:
let mut vp: *T = ...; let mut v: T = rusti::uninit(); // Create a non-zeroed value ptr:memcpy(&mut T, vp, 1);
And if you need the zeroing you can do a memset.
The text was updated successfully, but these errors were encountered:
non-critical for 0.6, de-milestoning
Sorry, something went wrong.
This seems to be a duplicate of #3471.
Closed by #6354
No branches or pull requests
vec
previously had some code that looked like this:This had the effect of memcpying
*vp
tov
and zeroing*vp
.move
is being removed so this doesn't work. I've replaced that with:This could probably be more efficient by 1) not zeroing the value (in most cases), 2) not doing the swap.
Probably this is what we should do:
And if you need the zeroing you can do a memset.
The text was updated successfully, but these errors were encountered: