diff options
author | Ms2ger <ms2ger@gmail.com> | 2014-07-10 16:40:41 +0200 |
---|---|---|
committer | Ms2ger <ms2ger@gmail.com> | 2014-07-10 16:45:41 +0200 |
commit | 439bc78cabe2ef23748000b1eb9f345c9206524e (patch) | |
tree | 35f69907dffd2e4bae1aa9a8566bb07de0c4391c /src/components/script/dom/node.rs | |
parent | 360d5d01d86ec15fdfd8e3da62b2c39e731fa0d3 (diff) | |
download | servo-439bc78cabe2ef23748000b1eb9f345c9206524e.tar.gz servo-439bc78cabe2ef23748000b1eb9f345c9206524e.zip |
Return a Temporary from *Binding::Wrap.
Returning a JS<T> is GC-unsafe.
This commit also includes some cleanup around Node and Document reflection.
Diffstat (limited to 'src/components/script/dom/node.rs')
-rw-r--r-- | src/components/script/dom/node.rs | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/src/components/script/dom/node.rs b/src/components/script/dom/node.rs index 9892f0b5f27..aacaa9bbedb 100644 --- a/src/components/script/dom/node.rs +++ b/src/components/script/dom/node.rs @@ -907,13 +907,10 @@ impl Node { pub fn reflect_node<N: Reflectable+NodeBase> (node: Box<N>, document: &JSRef<Document>, - wrap_fn: extern "Rust" fn(*mut JSContext, &JSRef<Window>, Box<N>) -> JS<N>) + wrap_fn: extern "Rust" fn(*mut JSContext, &JSRef<Window>, Box<N>) -> Temporary<N>) -> Temporary<N> { - assert!(node.reflector().get_jsobject().is_null()); - let window = document.deref().window.root(); - let node = reflect_dom_object(node, &window.root_ref(), wrap_fn).root(); - assert!(node.deref().reflector().get_jsobject().is_not_null()); - Temporary::from_rooted(&*node) + let window = document.window.root(); + reflect_dom_object(node, &*window, wrap_fn) } pub fn new_inherited(type_id: NodeTypeId, doc: &JSRef<Document>) -> Node { |