Merge has_{before,after}_pseudo into get_{before,after}_display.

This commit is contained in:
Ms2ger 2015-07-18 12:13:54 +02:00
parent cc356e58ae
commit 2e6a723970

View file

@ -683,33 +683,21 @@ impl<'ln> ThreadSafeLayoutNode<'ln> {
} }
#[inline] #[inline]
pub fn get_before_display(&self) -> display::T { pub fn get_before_display(&self) -> Option<display::T> {
let mut layout_data_ref = self.mutate_layout_data(); let mut layout_data_ref = self.mutate_layout_data();
let node_layout_data_wrapper = layout_data_ref.as_mut().unwrap(); let node_layout_data_wrapper = layout_data_ref.as_mut().unwrap();
let style = node_layout_data_wrapper.data.before_style.as_ref().unwrap(); node_layout_data_wrapper.data.before_style.as_ref().map(|style| {
style.get_box().display style.get_box().display
})
} }
#[inline] #[inline]
pub fn get_after_display(&self) -> display::T { pub fn get_after_display(&self) -> Option<display::T> {
let mut layout_data_ref = self.mutate_layout_data(); let mut layout_data_ref = self.mutate_layout_data();
let node_layout_data_wrapper = layout_data_ref.as_mut().unwrap(); let node_layout_data_wrapper = layout_data_ref.as_mut().unwrap();
let style = node_layout_data_wrapper.data.after_style.as_ref().unwrap(); node_layout_data_wrapper.data.after_style.as_ref().map(|style| {
style.get_box().display style.get_box().display
} })
#[inline]
pub fn has_before_pseudo(&self) -> bool {
let layout_data_wrapper = self.borrow_layout_data();
let layout_data_wrapper_ref = layout_data_wrapper.as_ref().unwrap();
layout_data_wrapper_ref.data.before_style.is_some()
}
#[inline]
pub fn has_after_pseudo(&self) -> bool {
let layout_data_wrapper = self.borrow_layout_data();
let layout_data_wrapper_ref = layout_data_wrapper.as_ref().unwrap();
layout_data_wrapper_ref.data.after_style.is_some()
} }
/// Borrows the layout data without checking. /// Borrows the layout data without checking.
@ -944,15 +932,14 @@ impl<'a> ThreadSafeLayoutNodeChildrenIterator<'a> {
return None return None
} }
if parent.has_before_pseudo() { parent.get_before_display().map(|display| {
let pseudo = PseudoElementType::Before(parent.get_before_display()); parent.with_pseudo(PseudoElementType::Before(display))
return Some(parent.with_pseudo(pseudo)); }).or_else(|| {
} unsafe {
parent.get_jsmanaged().first_child_ref()
unsafe { .map(|node| parent.new_with_this_lifetime(&node))
parent.get_jsmanaged().first_child_ref() }
.map(|node| parent.new_with_this_lifetime(&node)) })
}
} }
ThreadSafeLayoutNodeChildrenIterator { ThreadSafeLayoutNodeChildrenIterator {
@ -977,13 +964,10 @@ impl<'a> Iterator for ThreadSafeLayoutNodeChildrenIterator<'a> {
}) })
}, },
None => { None => {
if self.parent_node.has_after_pseudo() { self.parent_node.get_after_display().map(|display| {
let pseudo = PseudoElementType::After( self.parent_node.with_pseudo(
self.parent_node.get_after_display()); PseudoElementType::After(display))
Some(self.parent_node.with_pseudo(pseudo)) })
} else {
None
}
} }
} }
}, },
@ -995,14 +979,11 @@ impl<'a> Iterator for ThreadSafeLayoutNodeChildrenIterator<'a> {
}) })
}, },
None => { None => {
if self.parent_node.has_after_pseudo() { self.parent_node.get_after_display().map(|display| {
let pseudo = PseudoElementType::After( self.parent_node.with_pseudo(
self.parent_node.get_after_display()); PseudoElementType::After(display))
Some(self.parent_node.with_pseudo(pseudo)) })
} else { },
None
}
}
} }
}, },
PseudoElementType::After(_) => { PseudoElementType::After(_) => {