mirror of
https://github.com/servo/servo.git
synced 2025-07-31 11:10:22 +01:00
Add LayoutJS<T: Reflectable>.get_jsobject().
This commit is contained in:
parent
b7443bef83
commit
2cca095481
2 changed files with 9 additions and 12 deletions
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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.
|
||||
///
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue