From 632cc53e2c02b05993458115baeb44cf6a0702ec Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Wed, 25 Mar 2020 18:52:03 +0100 Subject: [PATCH] LibWeb: Add ParentNode::remove_all_children() This safely removes all children from a Node. --- Libraries/LibWeb/DOM/ParentNode.cpp | 10 ++++++++++ Libraries/LibWeb/DOM/ParentNode.h | 2 ++ 2 files changed, 12 insertions(+) diff --git a/Libraries/LibWeb/DOM/ParentNode.cpp b/Libraries/LibWeb/DOM/ParentNode.cpp index 3bc86e480d..7042dcaa86 100644 --- a/Libraries/LibWeb/DOM/ParentNode.cpp +++ b/Libraries/LibWeb/DOM/ParentNode.cpp @@ -26,3 +26,13 @@ #include +namespace Web { + +void ParentNode::remove_all_children() +{ + while (RefPtr child = first_child()) { + remove_child(*child); + } +} + +} diff --git a/Libraries/LibWeb/DOM/ParentNode.h b/Libraries/LibWeb/DOM/ParentNode.h index e8e826c959..cc86505a8e 100644 --- a/Libraries/LibWeb/DOM/ParentNode.h +++ b/Libraries/LibWeb/DOM/ParentNode.h @@ -35,6 +35,8 @@ public: template void for_each_child(F) const; template void for_each_child(F); + void remove_all_children(); + protected: explicit ParentNode(Document& document, NodeType type) : Node(document, type)