File tree 1 file changed +5
-10
lines changed
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> {
27
27
// to hold the initial elements. Callers that anticipate needing to
28
28
// extend the vector may prefer RcVec::new_preserving_capacity.
29
29
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)
36
31
}
37
32
38
33
pub fn new_preserving_capacity ( vec : Vec < T > ) -> Self {
@@ -59,10 +54,10 @@ impl<T> RcVec<T> {
59
54
Ok ( mut vec) => {
60
55
// Drop any elements after our view of the data.
61
56
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 ) ;
66
61
Ok ( vec)
67
62
}
68
63
You can’t perform that action at this time.
0 commit comments