diff options
author | bors-servo <metajack+bors@gmail.com> | 2015-10-19 06:32:05 -0600 |
---|---|---|
committer | bors-servo <metajack+bors@gmail.com> | 2015-10-19 06:32:05 -0600 |
commit | 1a376aa75d5de8781b17a673850860f8afd2c28f (patch) | |
tree | 01650fefa8cb00280835382dfb60c15b57b0dce0 /components/script/dom/node.rs | |
parent | 50ad1b064d6e85e84707d83ca8f4b5b541b6b8da (diff) | |
parent | 6dc42dd1d6979cea7059b055de7f0d6f93c14338 (diff) | |
download | servo-1a376aa75d5de8781b17a673850860f8afd2c28f.tar.gz servo-1a376aa75d5de8781b17a673850860f8afd2c28f.zip |
Auto merge of #8060 - nox:deref-js, r=Ms2ger
Implement Deref<Target=T> for JS<T> where T: Reflectable
We can only borrow `JS<T>` from rooted things, so it's safe to deref it.
The only types that provide mutable `JS<T>` things are `MutHeap<JS<T>>` and
`MutNullableHeap<JS<T>>`, which don't actually expose that they contain
`JS<T>` values.
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8060)
<!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom/node.rs')
-rw-r--r-- | components/script/dom/node.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 36f6fd04bcc..034b8dfc3db 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -1308,7 +1308,7 @@ impl Node { wrap_fn: extern "Rust" fn(*mut JSContext, GlobalRef, Box<N>) -> Root<N>) -> Root<N> { let window = document.window(); - reflect_dom_object(node, GlobalRef::Window(window.r()), wrap_fn) + reflect_dom_object(node, GlobalRef::Window(window), wrap_fn) } pub fn new_inherited(doc: &Document) -> Node { @@ -1651,7 +1651,7 @@ impl Node { }; let window = document.window(); let loader = DocumentLoader::new(&*document.loader()); - let document = Document::new(window.r(), Some((*document.url()).clone()), + let document = Document::new(window, Some((*document.url()).clone()), is_html_doc, None, None, DocumentSource::NotFromParser, loader); NodeCast::from_root(document) @@ -1892,7 +1892,7 @@ impl NodeMethods for Node { self.child_list.or_init(|| { let doc = self.owner_doc(); let window = doc.r().window(); - NodeList::new_child_list(window.r(), self) + NodeList::new_child_list(window, self) }) } @@ -2391,7 +2391,7 @@ pub fn document_from_node<T: NodeBase + Reflectable>(derived: &T) -> Root<Docume pub fn window_from_node<T: NodeBase + Reflectable>(derived: &T) -> Root<Window> { let document = document_from_node(derived); - document.r().window() + Root::from_ref(document.r().window()) } impl VirtualMethods for Node { |