From c87c7f1d842bb5a68d7743277ac8c2287b14cb4d Mon Sep 17 00:00:00 2001 From: Ms2ger Date: Wed, 24 Jun 2015 15:43:10 +0200 Subject: [PATCH 1/3] Simplify ThreadSafeLayoutNode::text_content. --- components/layout/wrapper.rs | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/components/layout/wrapper.rs b/components/layout/wrapper.rs index d56fb0925b5..2c741a1461b 100644 --- a/components/layout/wrapper.rs +++ b/components/layout/wrapper.rs @@ -575,13 +575,6 @@ impl<'le> TElementAttributes for LayoutElement<'le> { } } -fn get_content(content_list: &content::T) -> Vec { - match *content_list { - content::T::Content(ref value) if !value.is_empty() => (*value).clone(), - _ => vec![], - } -} - #[derive(Copy, PartialEq, Clone)] pub enum PseudoElementType { Normal, @@ -927,15 +920,17 @@ impl<'ln> ThreadSafeLayoutNode<'ln> { pub fn text_content(&self) -> Vec { if self.pseudo != PseudoElementType::Normal { let layout_data_ref = self.borrow_layout_data(); - let node_layout_data_wrapper = layout_data_ref.as_ref().unwrap(); + let data = &layout_data_ref.as_ref().unwrap().data; - if self.pseudo.is_before() { - let before_style = node_layout_data_wrapper.data.before_style.as_ref().unwrap(); - return get_content(&before_style.get_box().content) + let style = if self.pseudo.is_before() { + &data.before_style } else { - let after_style = node_layout_data_wrapper.data.after_style.as_ref().unwrap(); - return get_content(&after_style.get_box().content) - } + &data.after_style + }; + return match style.as_ref().unwrap().get_box().content { + content::T::Content(ref value) if !value.is_empty() => (*value).clone(), + _ => vec![], + }; } let this = unsafe { self.get_jsmanaged() }; From 51d0f51dd9d065b29694e2deeedd5e546b66e20d Mon Sep 17 00:00:00 2001 From: Ms2ger Date: Wed, 24 Jun 2015 20:56:47 +0200 Subject: [PATCH 2/3] Use a while let loop in ThreadSafeLayoutNode::traverse_postorder_mut. --- components/layout/wrapper.rs | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/components/layout/wrapper.rs b/components/layout/wrapper.rs index 2c741a1461b..daaeadaae30 100644 --- a/components/layout/wrapper.rs +++ b/components/layout/wrapper.rs @@ -787,17 +787,12 @@ impl<'ln> ThreadSafeLayoutNode<'ln> { } let mut opt_kid = self.first_child(); - loop { - match opt_kid { - None => break, - Some(mut kid) => { - if !kid.traverse_postorder_mut(traversal) { - return false - } - unsafe { - opt_kid = kid.next_sibling() - } - } + while let Some(mut kid) = opt_kid { + if !kid.traverse_postorder_mut(traversal) { + return false + } + unsafe { + opt_kid = kid.next_sibling() } } From 8375e0914a820ff779c82dbd5a5ac5a3cf65a6e1 Mon Sep 17 00:00:00 2001 From: Ms2ger Date: Wed, 24 Jun 2015 20:58:19 +0200 Subject: [PATCH 3/3] Simplify ThreadSafeLayoutNodeChildrenIterator::next a bit. --- components/layout/wrapper.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/components/layout/wrapper.rs b/components/layout/wrapper.rs index daaeadaae30..561d750a754 100644 --- a/components/layout/wrapper.rs +++ b/components/layout/wrapper.rs @@ -1012,15 +1012,15 @@ impl<'a> Iterator for ThreadSafeLayoutNodeChildrenIterator<'a> { match self.parent_node { Some(ref parent_node) => { - if parent_node.pseudo == PseudoElementType::Normal { - self.current_node = self.current_node.clone().and_then(|node| { + self.current_node = if parent_node.pseudo == PseudoElementType::Normal { + self.current_node.clone().and_then(|node| { unsafe { node.next_sibling() } - }); + }) } else { - self.current_node = None; - } + None + }; } None => {} }