Skip to content

Commit

Permalink
Rollup merge of rust-lang#34911 - frewsxcv:vec-set-len, r=steveklabnik
Browse files Browse the repository at this point in the history
Rewrite/expand doc examples for `Vec::set_len`.

None
  • Loading branch information
GuillaumeGomez authored Jul 21, 2016
2 parents 91fd838 + a005b2c commit 27876c0
Showing 1 changed file with 30 additions and 2 deletions.
32 changes: 30 additions & 2 deletions src/libcollections/vec.rs
Original file line number Diff line number Diff line change
Expand Up @@ -565,9 +565,37 @@ impl<T> Vec<T> {
/// # Examples
///
/// ```
/// let mut v = vec![1, 2, 3, 4];
/// use std::ptr;
///
/// let mut vec = vec!['r', 'u', 's', 't'];
///
/// unsafe {
/// ptr::drop_in_place(&mut vec[3]);
/// vec.set_len(3);
/// }
/// assert_eq!(vec, ['r', 'u', 's']);
/// ```
///
/// In this example, there is a memory leak since the memory locations
/// owned by the vector were not freed prior to the `set_len` call:
///
/// ```
/// let mut vec = vec!['r', 'u', 's', 't'];
///
/// unsafe {
/// vec.set_len(0);
/// }
/// ```
///
/// In this example, the vector gets expanded from zero to four items
/// without any memory allocations occurring, resulting in vector
/// values of unallocated memory:
///
/// ```
/// let mut vec: Vec<char> = Vec::new();
///
/// unsafe {
/// v.set_len(1);
/// vec.set_len(4);
/// }
/// ```
#[inline]
Expand Down

0 comments on commit 27876c0

Please sign in to comment.