@@ -2882,25 +2882,21 @@ impl<T> Iterator for IntoIter<T> {
28822882
28832883 #[ inline]
28842884 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) } )
29042900 }
29052901 }
29062902
@@ -2935,22 +2931,18 @@ impl<T> Iterator for IntoIter<T> {
29352931impl < T > DoubleEndedIterator for IntoIter < T > {
29362932 #[ inline]
29372933 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 } ;
29452939
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 ) } ;
29502944
2951- Some ( ptr:: read ( self . end ) )
2952- }
2953- }
2945+ Some ( unsafe { ptr:: read ( self . end ) } )
29542946 }
29552947 }
29562948}
0 commit comments