Skip to content

Commit dbf2a76

Browse files
committed
Vec::truncate(): narrow unsafe block and improve examples.
Signed-off-by: NODA, Kai <nodakai@gmail.com>
1 parent be5d21e commit dbf2a76

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

Diff for: src/libcollections/vec.rs

+9-9
Original file line numberDiff line numberDiff line change
@@ -717,20 +717,20 @@ impl<T> Vec<T> {
717717
/// # Example
718718
///
719719
/// ```
720-
/// let mut vec = vec![1i, 2, 3, 4];
720+
/// let mut vec = vec![1i, 2, 3];
721721
/// vec.truncate(2);
722722
/// assert_eq!(vec, vec![1, 2]);
723+
/// vec.truncate(1000);
724+
/// assert_eq!(vec, vec![1, 2]);
723725
/// ```
724726
#[unstable = "matches collection reform specification; waiting on panic semantics"]
725727
pub fn truncate(&mut self, len: uint) {
726-
unsafe {
727-
// drop any extra elements
728-
while len < self.len {
729-
// decrement len before the read(), so a panic on Drop doesn't
730-
// re-drop the just-failed value.
731-
self.len -= 1;
732-
ptr::read(self.as_slice().unsafe_get(self.len));
733-
}
728+
// drop any extra elements
729+
while len < self.len {
730+
// decrement len before the read(), so a panic on Drop doesn't
731+
// re-drop the just-failed value.
732+
self.len -= 1;
733+
unsafe { ptr::read(self.as_slice().unsafe_get(self.len)); }
734734
}
735735
}
736736

0 commit comments

Comments
 (0)