mirror of
https://github.com/servo/servo.git
synced 2025-08-05 13:40:08 +01:00
script: Fix O(n^2) dirty bit marking when setting style on all immediate
children of a node.
This commit is contained in:
parent
55f9bd5d6f
commit
0fcaa3ce03
1 changed files with 9 additions and 7 deletions
|
@ -700,6 +700,7 @@ impl<'a> NodeHelpers<'a> for JSRef<'a, Node> {
|
||||||
//
|
//
|
||||||
// TODO(cgaebel): This is a very conservative way to account for sibling
|
// TODO(cgaebel): This is a very conservative way to account for sibling
|
||||||
// selectors. Maybe we can do something smarter in the future.
|
// selectors. Maybe we can do something smarter in the future.
|
||||||
|
if !self.get_has_dirty_siblings() {
|
||||||
let parent =
|
let parent =
|
||||||
match self.parent_node() {
|
match self.parent_node() {
|
||||||
None => return,
|
None => return,
|
||||||
|
@ -709,6 +710,7 @@ impl<'a> NodeHelpers<'a> for JSRef<'a, Node> {
|
||||||
for sibling in parent.root().r().children() {
|
for sibling in parent.root().r().children() {
|
||||||
sibling.set_has_dirty_siblings(true);
|
sibling.set_has_dirty_siblings(true);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 4. Dirty ancestors.
|
// 4. Dirty ancestors.
|
||||||
for ancestor in self.ancestors() {
|
for ancestor in self.ancestors() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue