File tree Expand file tree Collapse file tree 1 file changed +5
-10
lines changed
Expand file tree Collapse file tree 1 file changed +5
-10
lines changed Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments