@@ -2054,10 +2054,7 @@ impl ByteOrder for BigEndian {
2054
2054
fn from_slice_f32 ( numbers : & mut [ f32 ] ) {
2055
2055
if cfg ! ( target_endian = "little" ) {
2056
2056
for n in numbers {
2057
- unsafe {
2058
- let int = * ( n as * const f32 as * const u32 ) ;
2059
- * n = * ( & int. to_be ( ) as * const u32 as * const f32 ) ;
2060
- }
2057
+ * n = f32:: from_bits ( n. to_bits ( ) . to_be ( ) ) ;
2061
2058
}
2062
2059
}
2063
2060
}
@@ -2066,10 +2063,7 @@ impl ByteOrder for BigEndian {
2066
2063
fn from_slice_f64 ( numbers : & mut [ f64 ] ) {
2067
2064
if cfg ! ( target_endian = "little" ) {
2068
2065
for n in numbers {
2069
- unsafe {
2070
- let int = * ( n as * const f64 as * const u64 ) ;
2071
- * n = * ( & int. to_be ( ) as * const u64 as * const f64 ) ;
2072
- }
2066
+ * n = f64:: from_bits ( n. to_bits ( ) . to_be ( ) ) ;
2073
2067
}
2074
2068
}
2075
2069
}
@@ -2232,10 +2226,7 @@ impl ByteOrder for LittleEndian {
2232
2226
fn from_slice_f32 ( numbers : & mut [ f32 ] ) {
2233
2227
if cfg ! ( target_endian = "big" ) {
2234
2228
for n in numbers {
2235
- unsafe {
2236
- let int = * ( n as * const f32 as * const u32 ) ;
2237
- * n = * ( & int. to_le ( ) as * const u32 as * const f32 ) ;
2238
- }
2229
+ * n = f32:: from_bits ( n. to_bits ( ) . to_le ( ) ) ;
2239
2230
}
2240
2231
}
2241
2232
}
@@ -2244,10 +2235,7 @@ impl ByteOrder for LittleEndian {
2244
2235
fn from_slice_f64 ( numbers : & mut [ f64 ] ) {
2245
2236
if cfg ! ( target_endian = "big" ) {
2246
2237
for n in numbers {
2247
- unsafe {
2248
- let int = * ( n as * const f64 as * const u64 ) ;
2249
- * n = * ( & int. to_le ( ) as * const u64 as * const f64 ) ;
2250
- }
2238
+ * n = f64:: from_bits ( n. to_bits ( ) . to_le ( ) ) ;
2251
2239
}
2252
2240
}
2253
2241
}
0 commit comments