diff options
| author | bors <bors@rust-lang.org> | 2015-09-06 17:55:04 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2015-09-06 17:55:04 +0000 |
| commit | a269e31a30446bb0dc4ae36d170e507e31188bfe (patch) | |
| tree | 8f3a2282a4f196a0339ddf2e614d0392edd103ba /src/libstd/sys/unix/stack_overflow.rs | |
| parent | f84d53ca0afaeac14903d16ab24455f6170795e1 (diff) | |
| parent | 97dd25094cb1f6575aca71cbe2329382594a8b5e (diff) | |
| download | rust-a269e31a30446bb0dc4ae36d170e507e31188bfe.tar.gz rust-a269e31a30446bb0dc4ae36d170e507e31188bfe.zip | |
Auto merge of #28265 - boblehest:master, r=bluss
In the last code snippet on the following page there is a bug in the
implementation of Vec::drain().
https://doc.rust-lang.org/nightly/nomicon/vec-drain.html
```rust
pub fn drain(&mut self) -> Drain<T> {
// Oops, setting it to 0 while we still need the old value!
self.len = 0;
unsafe {
Drain {
// len is used to create a &[T] from &self here,
// so we end up always creating an empty slice.
iter: RawValIter::new(&self),
vec: PhantomData,
}
}
}
```
A simple test to verify that Drain is broken can be found here:
https://play.rust-lang.org/?gist=30f579565e4bbf4836ce&version=nightly
And here's one with a fixed implementation:
https://play.rust-lang.org/?gist=2ec0c1a6dcf5defd7a53&version=nightly
Diffstat (limited to 'src/libstd/sys/unix/stack_overflow.rs')
0 files changed, 0 insertions, 0 deletions
