Skip to content

Commit 69b9c23

Browse files
committed
Address review of RcVec
1 parent 2fa1da9 commit 69b9c23

File tree

1 file changed

+5
-10
lines changed

1 file changed

+5
-10
lines changed

src/libsyntax/util/rc_vec.rs

+5-10
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,7 @@ impl<T> RcVec<T> {
2727
// to hold the initial elements. Callers that anticipate needing to
2828
// extend the vector may prefer RcVec::new_preserving_capacity.
2929
vec.shrink_to_fit();
30-
31-
RcVec {
32-
offset: 0,
33-
len: vec.len() as u32,
34-
data: Lrc::new(vec),
35-
}
30+
Self::new_preserving_capacity(vec)
3631
}
3732

3833
pub fn new_preserving_capacity(vec: Vec<T>) -> Self {
@@ -59,10 +54,10 @@ impl<T> RcVec<T> {
5954
Ok(mut vec) => {
6055
// Drop any elements after our view of the data.
6156
vec.truncate(self.offset as usize + self.len as usize);
62-
// Drop any elements before our view of the data.
63-
if self.offset != 0 {
64-
vec.drain(..self.offset as usize);
65-
}
57+
// Drop any elements before our view of the data. Do this after
58+
// the `truncate` so that elements past the end of our view do
59+
// not need to be copied around.
60+
vec.drain(..self.offset as usize);
6661
Ok(vec)
6762
}
6863

0 commit comments

Comments
 (0)