File tree Expand file tree Collapse file tree 1 file changed +4
-10
lines changed Expand file tree Collapse file tree 1 file changed +4
-10
lines changed Original file line number Diff line number Diff line change @@ -1990,11 +1990,8 @@ impl<T> Extend<T> for Vec<T> {
1990
1990
<Self as SpecExtend < T , I :: IntoIter > >:: spec_extend ( self , iter. into_iter ( ) )
1991
1991
} else {
1992
1992
// if self has no allocation then use the more powerful from_iter specializations
1993
- let other = SpecFrom :: from_iter ( iter. into_iter ( ) ) ;
1994
- // replace self, don't run drop since self was empty
1995
- unsafe {
1996
- ptr:: write ( self , other) ;
1997
- }
1993
+ // and overwrite self
1994
+ mem:: replace ( self , SpecFrom :: from_iter ( iter. into_iter ( ) ) ) ;
1998
1995
}
1999
1996
}
2000
1997
}
@@ -2440,11 +2437,8 @@ impl<'a, T: 'a + Copy> Extend<&'a T> for Vec<T> {
2440
2437
self . spec_extend ( iter. into_iter ( ) )
2441
2438
} else {
2442
2439
// if self has no allocation then use the more powerful from_iter specializations
2443
- let other = SpecFrom :: from_iter ( iter. into_iter ( ) ) ;
2444
- // replace self, don't run drop since self was empty
2445
- unsafe {
2446
- ptr:: write ( self , other) ;
2447
- }
2440
+ // and overwrite self
2441
+ mem:: replace ( self , SpecFrom :: from_iter ( iter. into_iter ( ) ) ) ;
2448
2442
}
2449
2443
}
2450
2444
}
You can’t perform that action at this time.
0 commit comments