From 380e688123250c671e1b935490e73090e19e6ec8 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Tue, 6 Apr 2021 15:52:09 +0200 Subject: [PATCH] LibWeb: Remove nodes from their old parent in appendChild/insertBefore --- Userland/Libraries/LibWeb/DOM/Node.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Userland/Libraries/LibWeb/DOM/Node.cpp b/Userland/Libraries/LibWeb/DOM/Node.cpp index 5b933a892e9..5bb5cffd7bc 100644 --- a/Userland/Libraries/LibWeb/DOM/Node.cpp +++ b/Userland/Libraries/LibWeb/DOM/Node.cpp @@ -181,6 +181,8 @@ const Element* Node::parent_element() const RefPtr Node::append_child(NonnullRefPtr node, bool notify) { + if (node->parent()) + node->parent()->remove_child(node); if (&node->document() != &document()) document().adopt_node(node); TreeNode::append_child(node, notify); @@ -201,6 +203,8 @@ RefPtr Node::insert_before(NonnullRefPtr node, RefPtr child, b dbgln("FIXME: Trying to insert_before() a bogus child"); return nullptr; } + if (node->parent()) + node->parent()->remove_child(node); if (&node->document() != &document()) document().adopt_node(node); TreeNode::insert_before(node, child, notify);