From 5fdc8c14a6bfdf6fbf518eff20dceb91def98ccf Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Thu, 22 Oct 2020 18:48:01 +0200 Subject: [PATCH] LibWeb: Make Nodes actually ref/unref their Document Oops, it seems like I implemented all of the "nodes keep the document alive" mechanism except the part where the functions are actually called. :^) Fixes #3811. --- Libraries/LibWeb/DOM/Node.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Libraries/LibWeb/DOM/Node.cpp b/Libraries/LibWeb/DOM/Node.cpp index 71a89fae03..ac5b349429 100644 --- a/Libraries/LibWeb/DOM/Node.cpp +++ b/Libraries/LibWeb/DOM/Node.cpp @@ -54,12 +54,14 @@ Node::Node(Document& document, NodeType type) , m_document(&document) , m_type(type) { + m_document->ref_from_node({}); } Node::~Node() { if (layout_node() && layout_node()->parent()) layout_node()->parent()->remove_child(*layout_node()); + m_document->unref_from_node({}); } const HTML::HTMLAnchorElement* Node::enclosing_link_element() const