Merge new_with_pseudo_without_self() and new_with_pseudo() into with_pseudo()

This commit is contained in:
Simon Sapin 2014-04-11 19:18:19 +01:00
parent 49521baee7
commit 7f139b2b07

View file

@ -450,10 +450,10 @@ impl<'ln> TLayoutNode for ThreadSafeLayoutNode<'ln> {
if self.has_before_pseudo() { if self.has_before_pseudo() {
if self.is_block(Before) && self.pseudo == Normal { if self.is_block(Before) && self.pseudo == Normal {
let pseudo_before_node = ThreadSafeLayoutNode::new_with_pseudo_without_self(&self.node, BeforeBlock); let pseudo_before_node = self.with_pseudo(BeforeBlock);
return Some(pseudo_before_node) return Some(pseudo_before_node)
} else if self.pseudo == Normal || self.pseudo == BeforeBlock { } else if self.pseudo == Normal || self.pseudo == BeforeBlock {
let pseudo_before_node = ThreadSafeLayoutNode::new_with_pseudo_without_self(&self.node, Before); let pseudo_before_node = self.with_pseudo(Before);
return Some(pseudo_before_node) return Some(pseudo_before_node)
} }
} }
@ -497,16 +497,9 @@ impl<'ln> ThreadSafeLayoutNode<'ln> {
} }
} }
pub fn new_with_pseudo_without_self<'a>(node: &LayoutNode<'a>, pseudo: PseudoElementType) -> ThreadSafeLayoutNode<'a> { /// Creates a new `ThreadSafeLayoutNode` for the same `LayoutNode`
ThreadSafeLayoutNode { /// with a differet pseudo-element type.
node: node.clone(), pub fn with_pseudo(&self, pseudo: PseudoElementType) -> ThreadSafeLayoutNode<'ln> {
pseudo: pseudo,
}
}
/// Creates a new `ThreadSafeLayoutNode` from the given `LayoutNode`.
pub fn new_with_pseudo<'a>(&'a self, pseudo: PseudoElementType) -> ThreadSafeLayoutNode<'a> {
ThreadSafeLayoutNode { ThreadSafeLayoutNode {
node: self.node.clone(), node: self.node.clone(),
pseudo: pseudo, pseudo: pseudo,
@ -661,10 +654,10 @@ impl<'a> Iterator<ThreadSafeLayoutNode<'a>> for ThreadSafeLayoutNodeChildrenIter
Some(ref parent_node) => { Some(ref parent_node) => {
if parent_node.has_after_pseudo() { if parent_node.has_after_pseudo() {
let pseudo_after_node = if parent_node.is_block(After) && parent_node.pseudo == Normal { let pseudo_after_node = if parent_node.is_block(After) && parent_node.pseudo == Normal {
let pseudo_after_node = ThreadSafeLayoutNode::new_with_pseudo_without_self(&parent_node.node, AfterBlock); let pseudo_after_node = parent_node.with_pseudo(AfterBlock);
Some(pseudo_after_node) Some(pseudo_after_node)
} else if parent_node.pseudo == Normal || parent_node.pseudo == AfterBlock { } else if parent_node.pseudo == Normal || parent_node.pseudo == AfterBlock {
let pseudo_after_node = ThreadSafeLayoutNode::new_with_pseudo_without_self(&parent_node.node, After); let pseudo_after_node = parent_node.with_pseudo(After);
Some(pseudo_after_node) Some(pseudo_after_node)
} else { } else {
None None