@@ -2882,25 +2882,21 @@ impl<T> Iterator for IntoIter<T> {
2882
2882
2883
2883
#[ inline]
2884
2884
fn next ( & mut self ) -> Option < T > {
2885
- unsafe {
2886
- if self . ptr as * const _ == self . end {
2887
- None
2888
- } else {
2889
- if mem:: size_of :: < T > ( ) == 0 {
2890
- // purposefully don't use 'ptr.offset' because for
2891
- // vectors with 0-size elements this would return the
2892
- // same pointer.
2893
- self . ptr = arith_offset ( self . ptr as * const i8 , 1 ) as * mut T ;
2894
-
2895
- // Make up a value of this ZST.
2896
- Some ( mem:: zeroed ( ) )
2897
- } else {
2898
- let old = self . ptr ;
2899
- self . ptr = self . ptr . offset ( 1 ) ;
2900
-
2901
- Some ( ptr:: read ( old) )
2902
- }
2903
- }
2885
+ if self . ptr as * const _ == self . end {
2886
+ None
2887
+ } else if mem:: size_of :: < T > ( ) == 0 {
2888
+ // purposefully don't use 'ptr.offset' because for
2889
+ // vectors with 0-size elements this would return the
2890
+ // same pointer.
2891
+ self . ptr = unsafe { arith_offset ( self . ptr as * const i8 , 1 ) as * mut T } ;
2892
+
2893
+ // Make up a value of this ZST.
2894
+ Some ( unsafe { mem:: zeroed ( ) } )
2895
+ } else {
2896
+ let old = self . ptr ;
2897
+ self . ptr = unsafe { self . ptr . offset ( 1 ) } ;
2898
+
2899
+ Some ( unsafe { ptr:: read ( old) } )
2904
2900
}
2905
2901
}
2906
2902
@@ -2935,22 +2931,18 @@ impl<T> Iterator for IntoIter<T> {
2935
2931
impl < T > DoubleEndedIterator for IntoIter < T > {
2936
2932
#[ inline]
2937
2933
fn next_back ( & mut self ) -> Option < T > {
2938
- unsafe {
2939
- if self . end == self . ptr {
2940
- None
2941
- } else {
2942
- if mem:: size_of :: < T > ( ) == 0 {
2943
- // See above for why 'ptr.offset' isn't used
2944
- self . end = arith_offset ( self . end as * const i8 , -1 ) as * mut T ;
2934
+ if self . end == self . ptr {
2935
+ None
2936
+ } else if mem:: size_of :: < T > ( ) == 0 {
2937
+ // See above for why 'ptr.offset' isn't used
2938
+ self . end = unsafe { arith_offset ( self . end as * const i8 , -1 ) as * mut T } ;
2945
2939
2946
- // Make up a value of this ZST.
2947
- Some ( mem:: zeroed ( ) )
2948
- } else {
2949
- self . end = self . end . offset ( -1 ) ;
2940
+ // Make up a value of this ZST.
2941
+ Some ( unsafe { mem:: zeroed ( ) } )
2942
+ } else {
2943
+ self . end = unsafe { self . end . offset ( -1 ) } ;
2950
2944
2951
- Some ( ptr:: read ( self . end ) )
2952
- }
2953
- }
2945
+ Some ( unsafe { ptr:: read ( self . end ) } )
2954
2946
}
2955
2947
}
2956
2948
}
0 commit comments