diff options
Diffstat (limited to 'components/script/page.rs')
-rw-r--r-- | components/script/page.rs | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/components/script/page.rs b/components/script/page.rs index 17ff7296092..f2b011c2ea5 100644 --- a/components/script/page.rs +++ b/components/script/page.rs @@ -228,26 +228,18 @@ impl Page { self.children .borrow_mut() .iter_mut() - .enumerate() - .find(|&(_idx, ref page_tree)| { - // FIXME: page_tree has a lifetime such that it's unusable for anything. - let page_tree_id = page_tree.id; - page_tree_id == id - }) - .map(|(idx, _)| idx) + .position(|page_tree| page_tree.id == id) }; match remove_idx { - Some(idx) => return Some(self.children.borrow_mut().remove(idx).unwrap()), + Some(idx) => Some(self.children.borrow_mut().remove(idx).unwrap()), None => { - for page_tree in self.children.borrow_mut().iter_mut() { - match page_tree.remove(id) { - found @ Some(_) => return found, - None => (), // keep going... - } - } + self.children + .borrow_mut() + .iter_mut() + .filter_map(|page_tree| page_tree.remove(id)) + .next() } } - None } pub fn set_page_clip_rect_with_new_viewport(&self, viewport: Rect<f32>) -> bool { |