aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/node.rs
diff options
context:
space:
mode:
authorBobby Holley <bobbyholley@gmail.com>2016-11-15 23:33:34 -0800
committerBobby Holley <bobbyholley@gmail.com>2016-11-17 09:31:44 -0800
commit95a49863c72cc11ba41608e8a1216becc5dad75c (patch)
tree88477179141af163501822509d85ee76b04d4cb2 /components/script/dom/node.rs
parentb31ed2298c240fc364cb69ac3003048d7244e4b1 (diff)
downloadservo-95a49863c72cc11ba41608e8a1216becc5dad75c.tar.gz
servo-95a49863c72cc11ba41608e8a1216becc5dad75c.zip
Prevent nodes from having DIRTY_DESCENDANTS set by default.
Diffstat (limited to 'components/script/dom/node.rs')
-rw-r--r--components/script/dom/node.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs
index dbe32a167b8..17765218b54 100644
--- a/components/script/dom/node.rs
+++ b/components/script/dom/node.rs
@@ -167,7 +167,7 @@ bitflags! {
impl 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();
for node in new_child.traverse_preorder() {
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);
}
let document = new_child.owner_doc();
@@ -281,7 +283,8 @@ impl Node {
self.children_count.set(self.children_count.get() - 1);
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);
node.style_and_layout_data.get().map(|d| node.dispose(d));
}