@@ -2240,7 +2240,10 @@ impl<'a, T> FusedIterator for Chunks<'a, T> {}
2240
2240
unsafe impl < ' a , T > TrustedRandomAccess for Chunks < ' a , T > {
2241
2241
unsafe fn get_unchecked ( & mut self , i : usize ) -> & ' a [ T ] {
2242
2242
let start = i * self . chunk_size ;
2243
- let end = cmp:: min ( start + self . chunk_size , self . v . len ( ) ) ;
2243
+ let end = match start. checked_add ( self . chunk_size ) {
2244
+ None => self . v . len ( ) ,
2245
+ Some ( end) => cmp:: min ( end, self . v . len ( ) ) ,
2246
+ } ;
2244
2247
from_raw_parts ( self . v . as_ptr ( ) . offset ( start as isize ) , end - start)
2245
2248
}
2246
2249
fn may_have_side_effect ( ) -> bool { false }
@@ -2353,7 +2356,10 @@ impl<'a, T> FusedIterator for ChunksMut<'a, T> {}
2353
2356
unsafe impl < ' a , T > TrustedRandomAccess for ChunksMut < ' a , T > {
2354
2357
unsafe fn get_unchecked ( & mut self , i : usize ) -> & ' a mut [ T ] {
2355
2358
let start = i * self . chunk_size ;
2356
- let end = cmp:: min ( start + self . chunk_size , self . v . len ( ) ) ;
2359
+ let end = match start. checked_add ( self . chunk_size ) {
2360
+ None => self . v . len ( ) ,
2361
+ Some ( end) => cmp:: min ( end, self . v . len ( ) ) ,
2362
+ } ;
2357
2363
from_raw_parts_mut ( self . v . as_mut_ptr ( ) . offset ( start as isize ) , end - start)
2358
2364
}
2359
2365
fn may_have_side_effect ( ) -> bool { false }
0 commit comments