diff --git a/Userland/Libraries/LibWeb/DOM/Element.cpp b/Userland/Libraries/LibWeb/DOM/Element.cpp index 4b72d7cb8c..319ec1c721 100644 --- a/Userland/Libraries/LibWeb/DOM/Element.cpp +++ b/Userland/Libraries/LibWeb/DOM/Element.cpp @@ -711,17 +711,17 @@ void Element::children_changed() void Element::set_pseudo_element_node(Badge, CSS::Selector::PseudoElement pseudo_element, RefPtr pseudo_element_node) { - m_pseudo_element_nodes[to_underlying(pseudo_element)] = move(pseudo_element_node); + m_pseudo_element_nodes[to_underlying(pseudo_element)] = pseudo_element_node->make_weak_ptr(); } RefPtr Element::get_pseudo_element_node(CSS::Selector::PseudoElement pseudo_element) const { - return m_pseudo_element_nodes[to_underlying(pseudo_element)]; + return m_pseudo_element_nodes[to_underlying(pseudo_element)].strong_ref(); } void Element::clear_pseudo_element_nodes(Badge) { - m_pseudo_element_nodes.fill(nullptr); + m_pseudo_element_nodes.fill({}); } void Element::serialize_pseudo_elements_as_json(JsonArraySerializer& children_array) const diff --git a/Userland/Libraries/LibWeb/DOM/Element.h b/Userland/Libraries/LibWeb/DOM/Element.h index f45fad6203..95cb80dbfa 100644 --- a/Userland/Libraries/LibWeb/DOM/Element.h +++ b/Userland/Libraries/LibWeb/DOM/Element.h @@ -188,7 +188,7 @@ private: Vector m_classes; - Array, CSS::Selector::PseudoElementCount> m_pseudo_element_nodes; + Array, CSS::Selector::PseudoElementCount> m_pseudo_element_nodes; }; template<>