mirror of
https://github.com/servo/servo.git
synced 2025-07-22 23:03:42 +01:00
Do the sequential traversal breadth-first.
While we're at it, we also eliminate the 'unknown' dom depth for the bloom filter. Computing depth has negligible cost relative to the amount of work we do setting up the bloom filter at a given depth. Doing it once per traversal should be totally fine. I originally separated the elimination of unknown dom depth from the traversal changes, but I got bloom filter crashes on the intermediate patch, presumably because I didn't properly fix the sequential traversal for this case. Given that the final state is green, I just decided to squash and move on.
This commit is contained in:
parent
1b363ac909
commit
3f52052cf9
9 changed files with 63 additions and 75 deletions
|
@ -1146,7 +1146,6 @@ impl LayoutThread {
|
|||
};
|
||||
|
||||
let traversal = RecalcStyleAndConstructFlows::new(layout_context, traversal_driver);
|
||||
let dom_depth = Some(0); // This is always the root node.
|
||||
let token = {
|
||||
let stylist = &<RecalcStyleAndConstructFlows as
|
||||
DomTraversal<ServoLayoutElement>>::shared_context(&traversal).stylist;
|
||||
|
@ -1165,7 +1164,7 @@ impl LayoutThread {
|
|||
let pool = self.parallel_traversal.as_mut().unwrap();
|
||||
// Parallel mode
|
||||
parallel::traverse_dom::<ServoLayoutElement, RecalcStyleAndConstructFlows>(
|
||||
&traversal, element, dom_depth, token, pool);
|
||||
&traversal, element, token, pool);
|
||||
} else {
|
||||
// Sequential mode
|
||||
sequential::traverse_dom::<ServoLayoutElement, RecalcStyleAndConstructFlows>(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue