@@ -1932,27 +1932,6 @@ macro_rules! read_slice {
1932
1932
} } ;
1933
1933
}
1934
1934
1935
- /// Copies a &[$ty] $src into a &mut [u8] $dst, where $ty must be a numeric
1936
- /// type. This panics if size_of::<$ty>() * $src.len() != $dst.len().
1937
- ///
1938
- /// This macro is only safe to call when $src is a slice of numeric types and
1939
- /// $dst is a &mut [u8] and where $ty represents the type of the integers in
1940
- /// $src.
1941
- macro_rules! unsafe_write_slice_native {
1942
- ( $src: expr, $dst: expr, $ty: ty) => { {
1943
- let size = core:: mem:: size_of:: <$ty>( ) ;
1944
- assert_eq!( size * $src. len( ) , $dst. len( ) ) ;
1945
-
1946
- unsafe {
1947
- copy_nonoverlapping(
1948
- $src. as_ptr( ) as * const u8 ,
1949
- $dst. as_mut_ptr( ) ,
1950
- $dst. len( ) ,
1951
- ) ;
1952
- }
1953
- } } ;
1954
- }
1955
-
1956
1935
macro_rules! write_slice {
1957
1936
( $src: expr, $dst: expr, $ty: ty, $size: expr, $write: expr) => { {
1958
1937
assert!( $size == :: core:: mem:: size_of:: <$ty>( ) ) ;
@@ -2085,38 +2064,22 @@ impl ByteOrder for BigEndian {
2085
2064
2086
2065
#[ inline]
2087
2066
fn write_u16_into ( src : & [ u16 ] , dst : & mut [ u8 ] ) {
2088
- if cfg ! ( target_endian = "big" ) {
2089
- unsafe_write_slice_native ! ( src, dst, u16 ) ;
2090
- } else {
2091
- write_slice ! ( src, dst, u16 , 2 , Self :: write_u16) ;
2092
- }
2067
+ write_slice ! ( src, dst, u16 , 2 , Self :: write_u16) ;
2093
2068
}
2094
2069
2095
2070
#[ inline]
2096
2071
fn write_u32_into ( src : & [ u32 ] , dst : & mut [ u8 ] ) {
2097
- if cfg ! ( target_endian = "big" ) {
2098
- unsafe_write_slice_native ! ( src, dst, u32 ) ;
2099
- } else {
2100
- write_slice ! ( src, dst, u32 , 4 , Self :: write_u32) ;
2101
- }
2072
+ write_slice ! ( src, dst, u32 , 4 , Self :: write_u32) ;
2102
2073
}
2103
2074
2104
2075
#[ inline]
2105
2076
fn write_u64_into ( src : & [ u64 ] , dst : & mut [ u8 ] ) {
2106
- if cfg ! ( target_endian = "big" ) {
2107
- unsafe_write_slice_native ! ( src, dst, u64 ) ;
2108
- } else {
2109
- write_slice ! ( src, dst, u64 , 8 , Self :: write_u64) ;
2110
- }
2077
+ write_slice ! ( src, dst, u64 , 8 , Self :: write_u64) ;
2111
2078
}
2112
2079
2113
2080
#[ inline]
2114
2081
fn write_u128_into ( src : & [ u128 ] , dst : & mut [ u8 ] ) {
2115
- if cfg ! ( target_endian = "big" ) {
2116
- unsafe_write_slice_native ! ( src, dst, u128 ) ;
2117
- } else {
2118
- write_slice ! ( src, dst, u128 , 16 , Self :: write_u128) ;
2119
- }
2082
+ write_slice ! ( src, dst, u128 , 16 , Self :: write_u128) ;
2120
2083
}
2121
2084
2122
2085
#[ inline]
@@ -2285,38 +2248,22 @@ impl ByteOrder for LittleEndian {
2285
2248
2286
2249
#[ inline]
2287
2250
fn write_u16_into ( src : & [ u16 ] , dst : & mut [ u8 ] ) {
2288
- if cfg ! ( target_endian = "little" ) {
2289
- unsafe_write_slice_native ! ( src, dst, u16 ) ;
2290
- } else {
2291
- write_slice ! ( src, dst, u16 , 2 , Self :: write_u16) ;
2292
- }
2251
+ write_slice ! ( src, dst, u16 , 2 , Self :: write_u16) ;
2293
2252
}
2294
2253
2295
2254
#[ inline]
2296
2255
fn write_u32_into ( src : & [ u32 ] , dst : & mut [ u8 ] ) {
2297
- if cfg ! ( target_endian = "little" ) {
2298
- unsafe_write_slice_native ! ( src, dst, u32 ) ;
2299
- } else {
2300
- write_slice ! ( src, dst, u32 , 4 , Self :: write_u32) ;
2301
- }
2256
+ write_slice ! ( src, dst, u32 , 4 , Self :: write_u32) ;
2302
2257
}
2303
2258
2304
2259
#[ inline]
2305
2260
fn write_u64_into ( src : & [ u64 ] , dst : & mut [ u8 ] ) {
2306
- if cfg ! ( target_endian = "little" ) {
2307
- unsafe_write_slice_native ! ( src, dst, u64 ) ;
2308
- } else {
2309
- write_slice ! ( src, dst, u64 , 8 , Self :: write_u64) ;
2310
- }
2261
+ write_slice ! ( src, dst, u64 , 8 , Self :: write_u64) ;
2311
2262
}
2312
2263
2313
2264
#[ inline]
2314
2265
fn write_u128_into ( src : & [ u128 ] , dst : & mut [ u8 ] ) {
2315
- if cfg ! ( target_endian = "little" ) {
2316
- unsafe_write_slice_native ! ( src, dst, u128 ) ;
2317
- } else {
2318
- write_slice ! ( src, dst, u128 , 16 , Self :: write_u128) ;
2319
- }
2266
+ write_slice ! ( src, dst, u128 , 16 , Self :: write_u128) ;
2320
2267
}
2321
2268
2322
2269
#[ inline]
0 commit comments