diff options
author | Ms2ger <Ms2ger@gmail.com> | 2016-09-05 09:54:40 +0200 |
---|---|---|
committer | Ms2ger <Ms2ger@gmail.com> | 2016-09-05 09:54:40 +0200 |
commit | 5ae29b02b652cf34fce9c813c241c395ca7dd823 (patch) | |
tree | a25a5b2b7fa2fe533a1fd1e1ea97cdad91662d2e /components/script | |
parent | c46003eb05cca0ea779fee73d0f6325c85e19357 (diff) | |
download | servo-5ae29b02b652cf34fce9c813c241c395ca7dd823.tar.gz servo-5ae29b02b652cf34fce9c813c241c395ca7dd823.zip |
Stop using mem::transmute_copy.
Diffstat (limited to 'components/script')
-rw-r--r-- | components/script/dom/bindings/js.rs | 10 | ||||
-rw-r--r-- | components/script/layout_wrapper.rs | 5 |
2 files changed, 10 insertions, 5 deletions
diff --git a/components/script/dom/bindings/js.rs b/components/script/dom/bindings/js.rs index 6a0dfd83dea..a7ecc975129 100644 --- a/components/script/dom/bindings/js.rs +++ b/components/script/dom/bindings/js.rs @@ -126,7 +126,10 @@ impl<T: Castable> LayoutJS<T> { T: DerivedFrom<U> { debug_assert!(thread_state::get().is_layout()); - unsafe { mem::transmute_copy(self) } + let ptr: *const T = *self.ptr; + LayoutJS { + ptr: unsafe { NonZero::new(ptr as *const U) }, + } } /// Cast a DOM object downwards to one of the interfaces it might implement. @@ -136,7 +139,10 @@ impl<T: Castable> LayoutJS<T> { debug_assert!(thread_state::get().is_layout()); unsafe { if (*self.unsafe_get()).is::<U>() { - Some(mem::transmute_copy(self)) + let ptr: *const T = *self.ptr; + Some(LayoutJS { + ptr: NonZero::new(ptr as *const U), + }) } else { None } diff --git a/components/script/layout_wrapper.rs b/components/script/layout_wrapper.rs index a7f0a5019f3..2f4ee4995ef 100644 --- a/components/script/layout_wrapper.rs +++ b/components/script/layout_wrapper.rs @@ -51,7 +51,7 @@ use selectors::matching::ElementFlags; use selectors::parser::{AttrSelector, NamespaceConstraint}; use std::fmt; use std::marker::PhantomData; -use std::mem::{transmute, transmute_copy}; +use std::mem::transmute; use std::sync::Arc; use string_cache::{Atom, Namespace}; use style::attr::AttrValue; @@ -119,8 +119,7 @@ impl<'ln> TNode for ServoLayoutNode<'ln> { fn to_unsafe(&self) -> UnsafeNode { unsafe { - let ptr: usize = transmute_copy(self); - (ptr, 0) + (self.node.unsafe_get() as usize, 0) } } |