about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/value.rs9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/value.rs b/src/value.rs
index f80a05805c2..606a3516485 100644
--- a/src/value.rs
+++ b/src/value.rs
@@ -1,26 +1,25 @@
 #![allow(unknown_lints)]
 #![allow(float_cmp)]
 
-use std::mem::transmute;
 use rustc::ty::layout::TargetDataLayout;
 
 use error::{EvalError, EvalResult};
 use memory::{Memory, MemoryPointer, HasMemory};
 
 pub(super) fn bytes_to_f32(bytes: u128) -> f32 {
-    unsafe { transmute::<u32, f32>(bytes as u32) }
+    f32::from_bits(bytes as u32)
 }
 
 pub(super) fn bytes_to_f64(bytes: u128) -> f64 {
-    unsafe { transmute::<u64, f64>(bytes as u64) }
+    f64::from_bits(bytes as u64)
 }
 
 pub(super) fn f32_to_bytes(f: f32) -> u128 {
-    unsafe { transmute::<f32, u32>(f) as u128 }
+    f.to_bits() as u128
 }
 
 pub(super) fn f64_to_bytes(f: f64) -> u128 {
-    unsafe { transmute::<f64, u64>(f) as u128 }
+    f.to_bits() as u128
 }
 
 /// A `Value` represents a single self-contained Rust value.