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]
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 node_layout_data_wrapper = layout_data_ref.as_mut().unwrap();
let style = node_layout_data_wrapper.data.before_style.as_ref().unwrap();
style.get_box().display
node_layout_data_wrapper.data.before_style.as_ref().map(|style| {
style.get_box().display
})
}
#[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 node_layout_data_wrapper = layout_data_ref.as_mut().unwrap();
let style = node_layout_data_wrapper.data.after_style.as_ref().unwrap();
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()
node_layout_data_wrapper.data.after_style.as_ref().map(|style| {
style.get_box().display
})
}
/// Borrows the layout data without checking.
@ -944,15 +932,14 @@ impl<'a> ThreadSafeLayoutNodeChildrenIterator<'a> {
return None
}
if parent.has_before_pseudo() {
let pseudo = PseudoElementType::Before(parent.get_before_display());
return Some(parent.with_pseudo(pseudo));
}
unsafe {
parent.get_jsmanaged().first_child_ref()
.map(|node| parent.new_with_this_lifetime(&node))
}
parent.get_before_display().map(|display| {
parent.with_pseudo(PseudoElementType::Before(display))
}).or_else(|| {
unsafe {
parent.get_jsmanaged().first_child_ref()
.map(|node| parent.new_with_this_lifetime(&node))
}
})
}
ThreadSafeLayoutNodeChildrenIterator {
@ -977,13 +964,10 @@ impl<'a> Iterator for ThreadSafeLayoutNodeChildrenIterator<'a> {
})
},
None => {
if self.parent_node.has_after_pseudo() {
let pseudo = PseudoElementType::After(
self.parent_node.get_after_display());
Some(self.parent_node.with_pseudo(pseudo))
} else {
None
}
self.parent_node.get_after_display().map(|display| {
self.parent_node.with_pseudo(
PseudoElementType::After(display))
})
}
}
},
@ -995,14 +979,11 @@ impl<'a> Iterator for ThreadSafeLayoutNodeChildrenIterator<'a> {
})
},
None => {
if self.parent_node.has_after_pseudo() {
let pseudo = PseudoElementType::After(
self.parent_node.get_after_display());
Some(self.parent_node.with_pseudo(pseudo))
} else {
None
}
}
self.parent_node.get_after_display().map(|display| {
self.parent_node.with_pseudo(
PseudoElementType::After(display))
})
},
}
},
PseudoElementType::After(_) => {