mirror of
https://github.com/servo/servo.git
synced 2025-07-24 15:50:21 +01:00
Prevent nodes from having DIRTY_DESCENDANTS set by default.
This commit is contained in:
parent
b31ed2298c
commit
95a49863c7
1 changed files with 5 additions and 2 deletions
|
@ -167,7 +167,7 @@ bitflags! {
|
||||||
|
|
||||||
impl NodeFlags {
|
impl NodeFlags {
|
||||||
pub fn new() -> NodeFlags {
|
pub fn new() -> NodeFlags {
|
||||||
IS_DIRTY | HAS_DIRTY_DESCENDANTS
|
IS_DIRTY
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -243,6 +243,8 @@ impl Node {
|
||||||
let parent_in_doc = self.is_in_doc();
|
let parent_in_doc = self.is_in_doc();
|
||||||
for node in new_child.traverse_preorder() {
|
for node in new_child.traverse_preorder() {
|
||||||
node.set_flag(IS_IN_DOC, parent_in_doc);
|
node.set_flag(IS_IN_DOC, parent_in_doc);
|
||||||
|
// Out-of-document elements never have the descendants flag set.
|
||||||
|
debug_assert!(!node.get_flag(HAS_DIRTY_DESCENDANTS));
|
||||||
vtable_for(&&*node).bind_to_tree(parent_in_doc);
|
vtable_for(&&*node).bind_to_tree(parent_in_doc);
|
||||||
}
|
}
|
||||||
let document = new_child.owner_doc();
|
let document = new_child.owner_doc();
|
||||||
|
@ -281,7 +283,8 @@ impl Node {
|
||||||
self.children_count.set(self.children_count.get() - 1);
|
self.children_count.set(self.children_count.get() - 1);
|
||||||
|
|
||||||
for node in child.traverse_preorder() {
|
for node in child.traverse_preorder() {
|
||||||
node.set_flag(IS_IN_DOC, false);
|
// Out-of-document elements never have the descendants flag set.
|
||||||
|
node.set_flag(IS_IN_DOC | HAS_DIRTY_DESCENDANTS, false);
|
||||||
vtable_for(&&*node).unbind_from_tree(&context);
|
vtable_for(&&*node).unbind_from_tree(&context);
|
||||||
node.style_and_layout_data.get().map(|d| node.dispose(d));
|
node.style_and_layout_data.get().map(|d| node.dispose(d));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue