Auto merge of #6456 - Ms2ger:cleanup-layout, r=metajack

Some cleanup in layout.



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6456)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2015-06-25 01:42:45 -06:00
commit 605b83da54

View file

@ -575,13 +575,6 @@ impl<'le> TElementAttributes for LayoutElement<'le> {
} }
} }
fn get_content(content_list: &content::T) -> Vec<ContentItem> {
match *content_list {
content::T::Content(ref value) if !value.is_empty() => (*value).clone(),
_ => vec![],
}
}
#[derive(Copy, PartialEq, Clone)] #[derive(Copy, PartialEq, Clone)]
pub enum PseudoElementType { pub enum PseudoElementType {
Normal, Normal,
@ -794,17 +787,12 @@ impl<'ln> ThreadSafeLayoutNode<'ln> {
} }
let mut opt_kid = self.first_child(); let mut opt_kid = self.first_child();
loop { while let Some(mut kid) = opt_kid {
match opt_kid { if !kid.traverse_postorder_mut(traversal) {
None => break, return false
Some(mut kid) => { }
if !kid.traverse_postorder_mut(traversal) { unsafe {
return false opt_kid = kid.next_sibling()
}
unsafe {
opt_kid = kid.next_sibling()
}
}
} }
} }
@ -927,15 +915,17 @@ impl<'ln> ThreadSafeLayoutNode<'ln> {
pub fn text_content(&self) -> Vec<ContentItem> { pub fn text_content(&self) -> Vec<ContentItem> {
if self.pseudo != PseudoElementType::Normal { if self.pseudo != PseudoElementType::Normal {
let layout_data_ref = self.borrow_layout_data(); 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 style = if self.pseudo.is_before() {
let before_style = node_layout_data_wrapper.data.before_style.as_ref().unwrap(); &data.before_style
return get_content(&before_style.get_box().content)
} else { } else {
let after_style = node_layout_data_wrapper.data.after_style.as_ref().unwrap(); &data.after_style
return get_content(&after_style.get_box().content) };
} 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() }; let this = unsafe { self.get_jsmanaged() };
@ -1022,15 +1012,15 @@ impl<'a> Iterator for ThreadSafeLayoutNodeChildrenIterator<'a> {
match self.parent_node { match self.parent_node {
Some(ref parent_node) => { Some(ref parent_node) => {
if parent_node.pseudo == PseudoElementType::Normal { self.current_node = if parent_node.pseudo == PseudoElementType::Normal {
self.current_node = self.current_node.clone().and_then(|node| { self.current_node.clone().and_then(|node| {
unsafe { unsafe {
node.next_sibling() node.next_sibling()
} }
}); })
} else { } else {
self.current_node = None; None
} };
} }
None => {} None => {}
} }