From 686d2f85094d89d23227564965df33930958fcb4 Mon Sep 17 00:00:00 2001 From: Permutator Date: Fri, 6 Jan 2017 17:41:34 -0800 Subject: [PATCH] Don't use rposition() and unwrap() to find parent info --- components/layout/query.rs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/components/layout/query.rs b/components/layout/query.rs index f604c561152..aaf59b47d4b 100644 --- a/components/layout/query.rs +++ b/components/layout/query.rs @@ -861,14 +861,13 @@ pub fn process_offset_parent_query(requested_node: N, layout_root sequential::iterate_through_flow_tree_fragment_border_boxes(layout_root, &mut iterator); let node_offset_box = iterator.node_offset_box; - let parent_info_index = iterator.parent_nodes.iter().rposition(|info| info.is_some()); - match (node_offset_box, parent_info_index) { - (Some(node_offset_box), Some(parent_info_index)) => { - let parent = iterator.parent_nodes[parent_info_index].as_ref().unwrap(); - let origin = node_offset_box.offset - parent.origin; + let parent_info = iterator.parent_nodes.into_iter().rev().filter_map(|info| info).next(); + match (node_offset_box, parent_info) { + (Some(node_offset_box), Some(parent_info)) => { + let origin = node_offset_box.offset - parent_info.origin; let size = node_offset_box.rectangle.size; OffsetParentResponse { - node_address: Some(parent.node_address.to_untrusted_node_address()), + node_address: Some(parent_info.node_address.to_untrusted_node_address()), rect: Rect::new(origin, size), } }