diff options
author | Tetsuharu OHZEKI <saneyuki.snyk@gmail.com> | 2015-01-31 18:17:15 +0900 |
---|---|---|
committer | Tetsuharu OHZEKI <saneyuki.snyk@gmail.com> | 2015-02-01 01:54:38 +0900 |
commit | 2cca095481efb0a62de6d4584b589d89ffab35c0 (patch) | |
tree | bc2d5e97b198d389d7f6727b3ffb76e2dfef1f6d /components | |
parent | b7443bef83efd28e97f8184016824b0c176c0821 (diff) | |
download | servo-2cca095481efb0a62de6d4584b589d89ffab35c0.tar.gz servo-2cca095481efb0a62de6d4584b589d89ffab35c0.zip |
Add LayoutJS<T: Reflectable>.get_jsobject().
Diffstat (limited to 'components')
-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. /// |