Fix the assertion failure with inserting node contains child which has id into the document

https://github.com/mozilla/servo/issues/2630
This commit is contained in:
Tetsuharu OHZEKI 2014-06-11 03:03:07 +09:00
parent 897e39dcf3
commit 28f8d16c87
2 changed files with 19 additions and 4 deletions

View file

@ -1137,10 +1137,13 @@ impl Node {
// Step 8.
for node in nodes.mut_iter() {
parent.add_child(node, child);
if parent.is_in_doc() {
node.flags.deref().borrow_mut().insert(IsInDoc);
} else {
node.flags.deref().borrow_mut().remove(IsInDoc);
let is_in_doc = parent.is_in_doc();
for mut kid in node.traverse_preorder() {
if is_in_doc {
kid.flags.deref().borrow_mut().insert(IsInDoc);
} else {
kid.flags.deref().borrow_mut().remove(IsInDoc);
}
}
}