From bda29ade0912f7e17958f2f43dbe068bbb2bfd51 Mon Sep 17 00:00:00 2001 From: Edit Balint Date: Fri, 13 Jun 2014 14:58:38 +0200 Subject: [PATCH] Replace uses of JS.unrooted() with JS::from_rooted #2580 --- src/components/script/dom/attr.rs | 2 +- src/components/script/dom/attrlist.rs | 4 ++-- src/components/script/dom/bindings/js.rs | 6 ++--- src/components/script/dom/blob.rs | 2 +- src/components/script/dom/browsercontext.rs | 2 +- src/components/script/dom/clientrect.rs | 2 +- src/components/script/dom/clientrectlist.rs | 4 ++-- src/components/script/dom/document.rs | 2 +- .../script/dom/domimplementation.rs | 2 +- src/components/script/dom/domparser.rs | 2 +- src/components/script/dom/domtokenlist.rs | 2 +- src/components/script/dom/eventdispatcher.rs | 4 ++-- src/components/script/dom/formdata.rs | 4 ++-- src/components/script/dom/htmlcollection.rs | 4 ++-- src/components/script/dom/node.rs | 23 +++++++++---------- src/components/script/dom/nodelist.rs | 6 ++--- src/components/script/dom/performance.rs | 2 +- src/components/script/dom/validitystate.rs | 2 +- src/components/script/dom/xmlhttprequest.rs | 21 ++++++++--------- src/components/script/script_task.rs | 8 +++---- 20 files changed, 51 insertions(+), 53 deletions(-) diff --git a/src/components/script/dom/attr.rs b/src/components/script/dom/attr.rs index c8e5ad88527d..2a83853aa663 100644 --- a/src/components/script/dom/attr.rs +++ b/src/components/script/dom/attr.rs @@ -88,7 +88,7 @@ impl Attr { name: name, //TODO: Intern attribute names namespace: namespace, prefix: prefix, - owner: Cell::new(owner.unrooted()), + owner: Cell::new(JS::from_rooted(owner)), } } diff --git a/src/components/script/dom/attrlist.rs b/src/components/script/dom/attrlist.rs index ab4fa979a989..d8cd745a357a 100644 --- a/src/components/script/dom/attrlist.rs +++ b/src/components/script/dom/attrlist.rs @@ -20,8 +20,8 @@ impl AttrList { pub fn new_inherited(window: &JSRef, elem: &JSRef) -> AttrList { AttrList { reflector_: Reflector::new(), - window: window.unrooted(), - owner: elem.unrooted(), + window: JS::from_rooted(window), + owner: JS::from_rooted(elem), } } diff --git a/src/components/script/dom/bindings/js.rs b/src/components/script/dom/bindings/js.rs index 0f96f3e33e65..d52a25800f86 100644 --- a/src/components/script/dom/bindings/js.rs +++ b/src/components/script/dom/bindings/js.rs @@ -88,7 +88,7 @@ impl Temporary { /// Create a new Temporary value from a rooted value. pub fn from_rooted<'a>(root: &JSRef<'a, T>) -> Temporary { - Temporary::new(root.unrooted()) + Temporary::new(JS::from_rooted(root)) } /// Create a stack-bounded root for this value. @@ -167,7 +167,7 @@ impl JS { } impl, U: Reflectable> JS { - pub fn from_rooted(root: T) -> JS { + pub fn from_rooted(root: &T) -> JS { unsafe { root.get_js() } @@ -296,7 +296,7 @@ pub trait OptionalUnrootable { impl<'a, T: Reflectable> OptionalUnrootable for Option> { fn unrooted(&self) -> Option> { - self.as_ref().map(|inner| inner.unrooted()) + self.as_ref().map(|inner| JS::from_rooted(inner)) } } diff --git a/src/components/script/dom/blob.rs b/src/components/script/dom/blob.rs index 8f30bdcf2b06..1cde9f01e74f 100644 --- a/src/components/script/dom/blob.rs +++ b/src/components/script/dom/blob.rs @@ -18,7 +18,7 @@ impl Blob { pub fn new_inherited(window: &JSRef) -> Blob { Blob { reflector_: Reflector::new(), - window: window.unrooted() + window: JS::from_rooted(window) } } diff --git a/src/components/script/dom/browsercontext.rs b/src/components/script/dom/browsercontext.rs index 5c6a3ed0a2ef..ce67b882c660 100644 --- a/src/components/script/dom/browsercontext.rs +++ b/src/components/script/dom/browsercontext.rs @@ -75,7 +75,7 @@ pub struct SessionHistoryEntry { impl SessionHistoryEntry { fn new(document: &JSRef) -> SessionHistoryEntry { SessionHistoryEntry { - document: document.unrooted(), + document: JS::from_rooted(document), children: vec!() } } diff --git a/src/components/script/dom/clientrect.rs b/src/components/script/dom/clientrect.rs index 744682511e1c..026958159dc3 100644 --- a/src/components/script/dom/clientrect.rs +++ b/src/components/script/dom/clientrect.rs @@ -28,7 +28,7 @@ impl ClientRect { left: left.to_nearest_px() as f32, right: right.to_nearest_px() as f32, reflector_: Reflector::new(), - window: window.unrooted(), + window: JS::from_rooted(window), } } diff --git a/src/components/script/dom/clientrectlist.rs b/src/components/script/dom/clientrectlist.rs index 169fce8ef0a7..9f60d575d4f1 100644 --- a/src/components/script/dom/clientrectlist.rs +++ b/src/components/script/dom/clientrectlist.rs @@ -18,11 +18,11 @@ pub struct ClientRectList { impl ClientRectList { pub fn new_inherited(window: &JSRef, rects: Vec>) -> ClientRectList { - let rects = rects.iter().map(|rect| rect.unrooted()).collect(); + let rects = rects.iter().map(|rect| JS::from_rooted(rect)).collect(); ClientRectList { reflector_: Reflector::new(), rects: rects, - window: window.unrooted(), + window: JS::from_rooted(window), } } diff --git a/src/components/script/dom/document.rs b/src/components/script/dom/document.rs index 173fa84b5f5e..a0c479191010 100644 --- a/src/components/script/dom/document.rs +++ b/src/components/script/dom/document.rs @@ -215,7 +215,7 @@ impl Document { Document { node: Node::new_without_doc(DocumentNodeTypeId), reflector_: Reflector::new(), - window: window.unrooted(), + window: JS::from_rooted(window), idmap: Traceable::new(RefCell::new(HashMap::new())), implementation: Cell::new(None), content_type: match content_type { diff --git a/src/components/script/dom/domimplementation.rs b/src/components/script/dom/domimplementation.rs index 370a233f67d3..f399f1e2d8b1 100644 --- a/src/components/script/dom/domimplementation.rs +++ b/src/components/script/dom/domimplementation.rs @@ -28,7 +28,7 @@ pub struct DOMImplementation { impl DOMImplementation { pub fn new_inherited(owner: &JSRef) -> DOMImplementation { DOMImplementation { - owner: owner.unrooted(), + owner: JS::from_rooted(owner), reflector_: Reflector::new(), } } diff --git a/src/components/script/dom/domparser.rs b/src/components/script/dom/domparser.rs index 540de38727a2..a451441fe492 100644 --- a/src/components/script/dom/domparser.rs +++ b/src/components/script/dom/domparser.rs @@ -20,7 +20,7 @@ pub struct DOMParser { impl DOMParser { pub fn new_inherited(owner: &JSRef) -> DOMParser { DOMParser { - owner: owner.unrooted(), + owner: JS::from_rooted(owner), reflector_: Reflector::new() } } diff --git a/src/components/script/dom/domtokenlist.rs b/src/components/script/dom/domtokenlist.rs index b0a6f2c73c28..38fdcb8937c3 100644 --- a/src/components/script/dom/domtokenlist.rs +++ b/src/components/script/dom/domtokenlist.rs @@ -24,7 +24,7 @@ impl DOMTokenList { local_name: &'static str) -> DOMTokenList { DOMTokenList { reflector_: Reflector::new(), - element: JS::from_rooted(element.clone()), + element: JS::from_rooted(element), local_name: local_name, } } diff --git a/src/components/script/dom/eventdispatcher.rs b/src/components/script/dom/eventdispatcher.rs index 282130084d0c..f1ef7d473e97 100644 --- a/src/components/script/dom/eventdispatcher.rs +++ b/src/components/script/dom/eventdispatcher.rs @@ -4,7 +4,7 @@ use dom::bindings::callback::ReportExceptions; use dom::bindings::codegen::InheritTypes::{EventTargetCast, NodeCast, NodeDerived}; -use dom::bindings::js::{JSRef, OptionalSettable, OptionalRootable, Root}; +use dom::bindings::js::{JS, JSRef, OptionalSettable, OptionalRootable, Root}; use dom::eventtarget::{Capturing, Bubbling, EventTarget}; use dom::event::{Event, PhaseAtTarget, PhaseNone, PhaseBubbling, PhaseCapturing, EventMethods}; use dom::node::{Node, NodeHelpers}; @@ -29,7 +29,7 @@ pub fn dispatch_event<'a, 'b>(target: &JSRef<'a, EventTarget>, let target_node: &JSRef = NodeCast::to_ref(target).unwrap(); target_node.ancestors().map(|ancestor| { let ancestor_target: &JSRef = EventTargetCast::from_ref(&ancestor); - ancestor_target.unrooted().root() + JS::from_rooted(ancestor_target).root() }).collect() } else { vec!() diff --git a/src/components/script/dom/formdata.rs b/src/components/script/dom/formdata.rs index 40dc6935fe68..3cc3e1e29ec3 100644 --- a/src/components/script/dom/formdata.rs +++ b/src/components/script/dom/formdata.rs @@ -33,7 +33,7 @@ impl FormData { FormData { data: Traceable::new(RefCell::new(HashMap::new())), reflector_: Reflector::new(), - window: window.unrooted(), + window: JS::from_rooted(window), form: form.unrooted(), } } @@ -55,7 +55,7 @@ pub trait FormDataMethods { impl<'a> FormDataMethods for JSRef<'a, FormData> { fn Append(&self, name: DOMString, value: &JSRef, filename: Option) { let blob = BlobData { - blob: value.unrooted(), + blob: JS::from_rooted(value), name: filename.unwrap_or("default".to_string()) }; self.data.deref().borrow_mut().insert(name.clone(), blob); diff --git a/src/components/script/dom/htmlcollection.rs b/src/components/script/dom/htmlcollection.rs index aeb506938f8d..121564ba25e8 100644 --- a/src/components/script/dom/htmlcollection.rs +++ b/src/components/script/dom/htmlcollection.rs @@ -42,7 +42,7 @@ impl HTMLCollection { HTMLCollection { collection: collection, reflector_: Reflector::new(), - window: window.unrooted(), + window: JS::from_rooted(window), } } @@ -55,7 +55,7 @@ impl HTMLCollection { impl HTMLCollection { pub fn create(window: &JSRef, root: &JSRef, filter: Box) -> Temporary { - HTMLCollection::new(window, Live(root.unrooted(), filter)) + HTMLCollection::new(window, Live(JS::from_rooted(root), filter)) } pub fn by_tag_name(window: &JSRef, root: &JSRef, tag: DOMString) diff --git a/src/components/script/dom/node.rs b/src/components/script/dom/node.rs index 5be262a90039..848c60a1b094 100644 --- a/src/components/script/dom/node.rs +++ b/src/components/script/dom/node.rs @@ -819,7 +819,7 @@ impl NodeIterator { include_start: bool, include_descendants_of_void: bool) -> NodeIterator { NodeIterator { - start_node: start_node.unrooted(), + start_node: JS::from_rooted(start_node), current_node: None, depth: 0, include_start: include_start, @@ -849,19 +849,19 @@ impl<'a> Iterator> for NodeIterator { Some(self.start_node) } else { self.next_child(&*self.start_node.root()) - .map(|child| child.unrooted()) + .map(|child| JS::from_rooted(&child)) } }, Some(node) => { match self.next_child(&*node) { Some(child) => { self.depth += 1; - Some(child.unrooted()) + Some(JS::from_rooted(&child)) }, - None if node.deref().unrooted() == self.start_node => None, + None if JS::from_rooted(&*node) == self.start_node => None, None => { match node.deref().next_sibling().root() { - Some(sibling) => Some(sibling.deref().unrooted()), + Some(sibling) => Some(JS::from_rooted(&*sibling)), None => { let mut candidate = node.deref().clone(); while candidate.next_sibling().is_none() { @@ -869,12 +869,12 @@ impl<'a> Iterator> for NodeIterator { .expect("Got to root without reaching start node") .root()).clone(); self.depth -= 1; - if candidate.unrooted() == self.start_node { + if JS::from_rooted(&candidate) == self.start_node { break; } } - if candidate.unrooted() != self.start_node { - candidate.next_sibling().map(|node| node.root().unrooted()) + if JS::from_rooted(&candidate) != self.start_node { + candidate.next_sibling().map(|node| JS::from_rooted(node.root().deref())) } else { None } @@ -940,7 +940,6 @@ impl Node { last_child: Cell::new(None), next_sibling: Cell::new(None), prev_sibling: Cell::new(None), - owner_doc: Cell::new(doc.unrooted()), child_list: Cell::new(None), @@ -1243,7 +1242,7 @@ impl Node { // Step 1. let mut document = match maybe_doc { - Some(doc) => doc.unrooted().root(), + Some(doc) => JS::from_rooted(doc).root(), None => node.owner_doc().root() }; @@ -1304,9 +1303,9 @@ impl Node { // Step 3. let document = if copy.is_document() { let doc: &JSRef = DocumentCast::to_ref(&*copy).unwrap(); - doc.unrooted().root() + JS::from_rooted(doc).root() } else { - document.unrooted().root() + JS::from_rooted(&*document).root() }; assert!(&*copy.owner_doc().root() == &*document); diff --git a/src/components/script/dom/nodelist.rs b/src/components/script/dom/nodelist.rs index eba16d3902a3..73d4a44c229f 100644 --- a/src/components/script/dom/nodelist.rs +++ b/src/components/script/dom/nodelist.rs @@ -27,7 +27,7 @@ impl NodeList { NodeList { list_type: list_type, reflector_: Reflector::new(), - window: window.unrooted() + window: JS::from_rooted(window) } } @@ -38,11 +38,11 @@ impl NodeList { } pub fn new_simple_list(window: &JSRef, elements: Vec>) -> Temporary { - NodeList::new(window, Simple(elements.iter().map(|element| element.unrooted()).collect())) + NodeList::new(window, Simple(elements.iter().map(|element| JS::from_rooted(element)).collect())) } pub fn new_child_list(window: &JSRef, node: &JSRef) -> Temporary { - NodeList::new(window, Children(node.unrooted())) + NodeList::new(window, Children(JS::from_rooted(node))) } } diff --git a/src/components/script/dom/performance.rs b/src/components/script/dom/performance.rs index c933494697a1..908a2a8574bb 100644 --- a/src/components/script/dom/performance.rs +++ b/src/components/script/dom/performance.rs @@ -19,7 +19,7 @@ pub struct Performance { impl Performance { fn new_inherited(window: &JSRef) -> Performance { - let timing = PerformanceTiming::new(window).root().root_ref().unrooted(); + let timing = JS::from_rooted(&PerformanceTiming::new(window).root().root_ref()); Performance { reflector_: Reflector::new(), timing: timing, diff --git a/src/components/script/dom/validitystate.rs b/src/components/script/dom/validitystate.rs index 5a86c18a27a3..27b702db9687 100644 --- a/src/components/script/dom/validitystate.rs +++ b/src/components/script/dom/validitystate.rs @@ -19,7 +19,7 @@ impl ValidityState { pub fn new_inherited(window: &JSRef) -> ValidityState { ValidityState { reflector_: Reflector::new(), - window: Cell::new(window.unrooted()), + window: Cell::new(JS::from_rooted(window)), state: 0, } } diff --git a/src/components/script/dom/xmlhttprequest.rs b/src/components/script/dom/xmlhttprequest.rs index f3d76acca397..a5037be211de 100644 --- a/src/components/script/dom/xmlhttprequest.rs +++ b/src/components/script/dom/xmlhttprequest.rs @@ -9,7 +9,7 @@ use dom::bindings::codegen::Bindings::XMLHttpRequestBinding::XMLHttpRequestRespo use dom::bindings::codegen::InheritTypes::{EventCast, EventTargetCast, XMLHttpRequestDerived}; use dom::bindings::conversions::ToJSValConvertible; use dom::bindings::error::{ErrorResult, Fallible, InvalidState, InvalidAccess, Network, Syntax, Security}; -use dom::bindings::js::{JS, JSRef, Temporary, OptionalSettable, OptionalRootedRootable}; +use dom::bindings::js::{JS, JSRef, Temporary, OptionalRootedRootable}; use dom::bindings::str::ByteString; use dom::bindings::trace::Untraceable; use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; @@ -106,7 +106,7 @@ pub struct XMLHttpRequest { ready_state: XMLHttpRequestState, timeout: u32, with_credentials: bool, - upload: Cell>>, + upload: Cell>, response_url: DOMString, status: u16, status_text: ByteString, @@ -136,7 +136,7 @@ impl XMLHttpRequest { ready_state: Unsent, timeout: 0u32, with_credentials: false, - upload: Cell::new(None), + upload: Cell::new(JS::from_rooted(&XMLHttpRequestUpload::new(owner))), response_url: "".to_string(), status: 0, status_text: ByteString::new(vec!()), @@ -155,10 +155,9 @@ impl XMLHttpRequest { upload_complete: false, upload_events: false, - global: owner.unrooted(), + global: JS::from_rooted(owner), pinned: false, }; - xhr.upload.assign(Some(XMLHttpRequestUpload::new(owner))); xhr } pub fn new(window: &JSRef) -> Temporary { @@ -407,7 +406,7 @@ impl<'a> XMLHttpRequestMethods<'a> for JSRef<'a, XMLHttpRequest> { self.with_credentials = with_credentials } fn Upload(&self) -> Temporary { - Temporary::new(self.upload.get().get_ref().clone()) + Temporary::new(self.upload.get()) } fn Send(&mut self, data: Option) -> ErrorResult { if self.ready_state != Opened || self.send_flag { @@ -429,7 +428,7 @@ impl<'a> XMLHttpRequestMethods<'a> for JSRef<'a, XMLHttpRequest> { }; if !self.sync { // Step 8 - let upload_target = &*self.upload.get().root().unwrap(); + let upload_target = &*self.upload.get().root(); let event_target: &JSRef = EventTargetCast::from_ref(upload_target); if event_target.has_handlers() { self.upload_events = true; @@ -738,10 +737,10 @@ impl<'a> PrivateXMLHttpRequestHelpers for JSRef<'a, XMLHttpRequest> { fn dispatch_progress_event(&self, upload: bool, type_: DOMString, loaded: u64, total: Option) { let win = &*self.global.root(); - let upload_target = &*self.upload.get().root().unwrap(); - let progressevent = ProgressEvent::new(win, type_, false, false, - total.is_some(), loaded, - total.unwrap_or(0)).root(); + let upload_target = &*self.upload.get().root(); + let mut progressevent = ProgressEvent::new(win, type_, false, false, + total.is_some(), loaded, + total.unwrap_or(0)).root(); let target: &JSRef = if upload { EventTargetCast::from_ref(upload_target) } else { diff --git a/src/components/script/script_task.rs b/src/components/script/script_task.rs index f28044a7102a..dde4fbb87411 100644 --- a/src/components/script/script_task.rs +++ b/src/components/script/script_task.rs @@ -972,8 +972,8 @@ impl ScriptTask { // Create the root frame. let mut frame = page.mut_frame(); *frame = Some(Frame { - document: document.deref().unrooted(), - window: window.deref().unrooted(), + document: JS::from_rooted(document.deref()), + window: JS::from_rooted(window.deref()), }); } @@ -1178,12 +1178,12 @@ impl ScriptTask { match *mouse_over_targets { Some(ref mouse_over_targets) => { if !target_compare { - target_compare = !mouse_over_targets.contains(&node.unrooted()); + target_compare = !mouse_over_targets.contains(&JS::from_rooted(&node)); } } None => {} } - target_list.push(node.unrooted()); + target_list.push(JS::from_rooted(&node)); } None => {} }