@@ -2226,17 +2226,14 @@ where
22262226 A : ' a ,
22272227 S : Data ,
22282228 {
2229- if let Some ( slc) = self . as_slice_memory_order ( ) {
2230- let v = crate :: iterators:: to_vec_mapped ( slc. iter ( ) , f) ;
2231- unsafe {
2232- ArrayBase :: from_shape_vec_unchecked (
2229+ unsafe {
2230+ if let Some ( slc) = self . as_slice_memory_order ( ) {
2231+ ArrayBase :: from_shape_trusted_iter_unchecked (
22332232 self . dim . clone ( ) . strides ( self . strides . clone ( ) ) ,
2234- v,
2235- )
2233+ slc. iter ( ) , f)
2234+ } else {
2235+ ArrayBase :: from_shape_trusted_iter_unchecked ( self . dim . clone ( ) , self . iter ( ) , f)
22362236 }
2237- } else {
2238- let v = crate :: iterators:: to_vec_mapped ( self . iter ( ) , f) ;
2239- unsafe { ArrayBase :: from_shape_vec_unchecked ( self . dim . clone ( ) , v) }
22402237 }
22412238 }
22422239
@@ -2256,11 +2253,10 @@ where
22562253 if self . is_contiguous ( ) {
22572254 let strides = self . strides . clone ( ) ;
22582255 let slc = self . as_slice_memory_order_mut ( ) . unwrap ( ) ;
2259- let v = crate :: iterators :: to_vec_mapped ( slc . iter_mut ( ) , f ) ;
2260- unsafe { ArrayBase :: from_shape_vec_unchecked ( dim . strides ( strides ) , v ) }
2256+ unsafe { ArrayBase :: from_shape_trusted_iter_unchecked ( dim . strides ( strides ) ,
2257+ slc . iter_mut ( ) , f ) }
22612258 } else {
2262- let v = crate :: iterators:: to_vec_mapped ( self . iter_mut ( ) , f) ;
2263- unsafe { ArrayBase :: from_shape_vec_unchecked ( dim, v) }
2259+ unsafe { ArrayBase :: from_shape_trusted_iter_unchecked ( dim, self . iter_mut ( ) , f) }
22642260 }
22652261 }
22662262
0 commit comments