From 22931145ab12b32886c5a743c2f337700cd7dc6f Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Tue, 19 May 2015 03:00:59 +0200 Subject: [PATCH] Remove use of RootedVec in DOMRectList --- components/script/dom/domrectlist.rs | 11 +++++------ components/script/dom/element.rs | 17 ++++++----------- 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/components/script/dom/domrectlist.rs b/components/script/dom/domrectlist.rs index a6ad5b50771..fe3a45ecf02 100644 --- a/components/script/dom/domrectlist.rs +++ b/components/script/dom/domrectlist.rs @@ -6,7 +6,6 @@ use dom::bindings::codegen::Bindings::DOMRectListBinding; use dom::bindings::codegen::Bindings::DOMRectListBinding::DOMRectListMethods; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JS, JSRef, Temporary}; -use dom::bindings::trace::RootedVec; use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::domrect::DOMRect; use dom::window::Window; @@ -19,17 +18,17 @@ pub struct DOMRectList { } impl DOMRectList { - fn new_inherited(window: JSRef, - rects: &RootedVec>) -> DOMRectList { + fn new_inherited(window: JSRef, rects: T) -> DOMRectList + where T: Iterator> { DOMRectList { reflector_: Reflector::new(), - rects: (**rects).clone(), + rects: rects.map(JS::from_rooted).collect(), window: JS::from_rooted(window), } } - pub fn new(window: JSRef, - rects: &RootedVec>) -> Temporary { + pub fn new(window: JSRef, rects: T) -> Temporary + where T: Iterator> { reflect_dom_object(box DOMRectList::new_inherited(window, rects), GlobalRef::Window(window), DOMRectListBinding::Wrap) } diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index f0ff55e2e5b..79bc12da518 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -1243,17 +1243,12 @@ impl<'a> ElementMethods for JSRef<'a, Element> { let win = window_from_node(self).root(); let node: JSRef = NodeCast::from_ref(self); let raw_rects = node.get_content_boxes(); - let mut rects = RootedVec::new(); - for rect in raw_rects.iter() { - let rect = DOMRect::new(win.r(), - rect.origin.y, - rect.origin.y + rect.size.height, - rect.origin.x, - rect.origin.x + rect.size.width); - rects.push(JS::from_rooted(rect)); - } - - DOMRectList::new(win.r(), &rects) + let rects = raw_rects.iter().map(|rect| { + DOMRect::new(win.r(), + rect.origin.y, rect.origin.y + rect.size.height, + rect.origin.x, rect.origin.x + rect.size.width) + }); + DOMRectList::new(win.r(), rects) } // http://dev.w3.org/csswg/cssom-view/#dom-element-getboundingclientrect