diff options
-rw-r--r-- | components/layout/util.rs | 5 | ||||
-rw-r--r-- | components/script/dom/bindings/js.rs | 16 |
2 files changed, 9 insertions, 12 deletions
diff --git a/components/layout/util.rs b/components/layout/util.rs index f7692fc3cda..270c796781e 100644 --- a/components/layout/util.rs +++ b/components/layout/util.rs @@ -11,7 +11,6 @@ use gfx::display_list::OpaqueNode; use gfx; use libc::uintptr_t; use script::dom::bindings::js::LayoutJS; -use script::dom::bindings::utils::Reflectable; use script::dom::node::{Node, SharedLayoutData}; use script::layout_interface::{LayoutChan, TrustedNodeAddress}; use script_traits::UntrustedNodeAddress; @@ -143,7 +142,7 @@ impl OpaqueNodeMethods for OpaqueNode { fn from_thread_safe_layout_node(node: &ThreadSafeLayoutNode) -> OpaqueNode { unsafe { let abstract_node = node.get_jsmanaged(); - let ptr: uintptr_t = abstract_node.reflector().get_jsobject() as uintptr_t; + let ptr: uintptr_t = abstract_node.get_jsobject() as uintptr_t; OpaqueNode(ptr) } } @@ -156,7 +155,7 @@ impl OpaqueNodeMethods for OpaqueNode { fn from_jsmanaged(node: &LayoutJS<Node>) -> OpaqueNode { unsafe { - let ptr: uintptr_t = mem::transmute(node.reflector().get_jsobject()); + let ptr: uintptr_t = node.get_jsobject() as uintptr_t; OpaqueNode(ptr) } } diff --git a/components/script/dom/bindings/js.rs b/components/script/dom/bindings/js.rs index ee2bf53e238..f062eb8cf64 100644 --- a/components/script/dom/bindings/js.rs +++ b/components/script/dom/bindings/js.rs @@ -144,6 +144,13 @@ pub struct LayoutJS<T> { ptr: NonZero<*const T> } +impl<T: Reflectable> LayoutJS<T> { + /// Get the reflector. + pub unsafe fn get_jsobject(&self) -> *mut JSObject { + (**self.ptr).reflector().get_jsobject() + } +} + impl<T> Copy for JS<T> {} impl<T> Copy for LayoutJS<T> {} @@ -241,15 +248,6 @@ impl<T: Reflectable> Reflectable for JS<T> { } } -// XXXjdm same above -impl<T: Reflectable> Reflectable for LayoutJS<T> { - fn reflector<'a>(&'a self) -> &'a Reflector { - unsafe { - (*self.unsafe_get()).reflector() - } - } -} - /// A trait to be implemented for JS-managed types that can be stored in /// mutable member fields. /// |