mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
style: Make next_in_preorder generate slightly better code.
This avoids the panic code in release builds. Differential Revision: https://phabricator.services.mozilla.com/D100094
This commit is contained in:
parent
f58301ecbc
commit
0dc6c32759
1 changed files with 8 additions and 12 deletions
|
@ -188,22 +188,18 @@ pub trait TNode: Sized + Copy + Clone + Debug + NodeInfo + PartialEq {
|
|||
return Some(c);
|
||||
}
|
||||
|
||||
if Some(*self) == scoped_to {
|
||||
return None;
|
||||
}
|
||||
|
||||
let mut current = *self;
|
||||
let mut current = Some(*self);
|
||||
loop {
|
||||
if let Some(s) = current.next_sibling() {
|
||||
return Some(s);
|
||||
}
|
||||
|
||||
let parent = current.parent_node();
|
||||
if parent == scoped_to {
|
||||
if current == scoped_to {
|
||||
return None;
|
||||
}
|
||||
|
||||
current = parent.expect("Not a descendant of the scope?");
|
||||
debug_assert!(current.is_some(), "not a descendant of the scope?");
|
||||
if let Some(s) = current?.next_sibling() {
|
||||
return Some(s);
|
||||
}
|
||||
|
||||
current = current?.parent_node();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue