aboutsummaryrefslogtreecommitdiffstats
path: root/components
diff options
context:
space:
mode:
authorTetsuharu OHZEKI <saneyuki.snyk@gmail.com>2015-01-31 18:17:15 +0900
committerTetsuharu OHZEKI <saneyuki.snyk@gmail.com>2015-02-01 01:54:38 +0900
commit2cca095481efb0a62de6d4584b589d89ffab35c0 (patch)
treebc2d5e97b198d389d7f6727b3ffb76e2dfef1f6d /components
parentb7443bef83efd28e97f8184016824b0c176c0821 (diff)
downloadservo-2cca095481efb0a62de6d4584b589d89ffab35c0.tar.gz
servo-2cca095481efb0a62de6d4584b589d89ffab35c0.zip
Add LayoutJS<T: Reflectable>.get_jsobject().
Diffstat (limited to 'components')
-rw-r--r--components/layout/util.rs5
-rw-r--r--components/script/dom/bindings/js.rs16
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.
///