mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Stop using Option in ThreadSafeLayoutNodeChildrenIterator::parent_node.
This commit is contained in:
parent
4b08cea663
commit
c018863201
1 changed files with 20 additions and 30 deletions
|
@ -684,7 +684,7 @@ impl<'ln> ThreadSafeLayoutNode<'ln> {
|
||||||
pub fn children(&self) -> ThreadSafeLayoutNodeChildrenIterator<'ln> {
|
pub fn children(&self) -> ThreadSafeLayoutNodeChildrenIterator<'ln> {
|
||||||
ThreadSafeLayoutNodeChildrenIterator {
|
ThreadSafeLayoutNodeChildrenIterator {
|
||||||
current_node: self.first_child(),
|
current_node: self.first_child(),
|
||||||
parent_node: Some(self.clone()),
|
parent_node: self.clone(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -990,7 +990,7 @@ impl<'ln> ThreadSafeLayoutNode<'ln> {
|
||||||
|
|
||||||
pub struct ThreadSafeLayoutNodeChildrenIterator<'a> {
|
pub struct ThreadSafeLayoutNodeChildrenIterator<'a> {
|
||||||
current_node: Option<ThreadSafeLayoutNode<'a>>,
|
current_node: Option<ThreadSafeLayoutNode<'a>>,
|
||||||
parent_node: Option<ThreadSafeLayoutNode<'a>>,
|
parent_node: ThreadSafeLayoutNode<'a>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> Iterator for ThreadSafeLayoutNodeChildrenIterator<'a> {
|
impl<'a> Iterator for ThreadSafeLayoutNodeChildrenIterator<'a> {
|
||||||
|
@ -1004,36 +1004,26 @@ impl<'a> Iterator for ThreadSafeLayoutNodeChildrenIterator<'a> {
|
||||||
return None
|
return None
|
||||||
}
|
}
|
||||||
|
|
||||||
match self.parent_node {
|
self.current_node = if self.parent_node.pseudo == PseudoElementType::Normal {
|
||||||
Some(ref parent_node) => {
|
self.current_node.clone().and_then(|node| {
|
||||||
self.current_node = if parent_node.pseudo == PseudoElementType::Normal {
|
unsafe {
|
||||||
self.current_node.clone().and_then(|node| {
|
node.next_sibling()
|
||||||
unsafe {
|
}
|
||||||
node.next_sibling()
|
})
|
||||||
}
|
} else {
|
||||||
})
|
None
|
||||||
} else {
|
};
|
||||||
None
|
|
||||||
};
|
|
||||||
}
|
|
||||||
None => {}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
None => {
|
None => {
|
||||||
match self.parent_node {
|
if self.parent_node.has_after_pseudo() {
|
||||||
Some(ref parent_node) => {
|
let pseudo_after_node = if self.parent_node.pseudo == PseudoElementType::Normal {
|
||||||
if parent_node.has_after_pseudo() {
|
let pseudo = PseudoElementType::After(self.parent_node.get_after_display());
|
||||||
let pseudo_after_node = if parent_node.pseudo == PseudoElementType::Normal {
|
Some(self.parent_node.with_pseudo(pseudo))
|
||||||
let pseudo = PseudoElementType::After(parent_node.get_after_display());
|
} else {
|
||||||
Some(parent_node.with_pseudo(pseudo))
|
None
|
||||||
} else {
|
};
|
||||||
None
|
self.current_node = pseudo_after_node;
|
||||||
};
|
return self.current_node.clone()
|
||||||
self.current_node = pseudo_after_node;
|
|
||||||
return self.current_node.clone()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
None => {}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue