From 5724a04553b7fce011870b4a766ae17161b897c3 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 3 Sep 2022 15:44:44 +0200 Subject: [PATCH] LibWeb: Make StyleSheet mark its owner node The garbage collector will take care of cycles. --- Userland/Libraries/LibWeb/CSS/StyleSheet.cpp | 6 ++---- Userland/Libraries/LibWeb/CSS/StyleSheet.h | 5 ++--- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/Userland/Libraries/LibWeb/CSS/StyleSheet.cpp b/Userland/Libraries/LibWeb/CSS/StyleSheet.cpp index 894d0cdf85..d628dd7889 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleSheet.cpp +++ b/Userland/Libraries/LibWeb/CSS/StyleSheet.cpp @@ -21,15 +21,13 @@ StyleSheet::StyleSheet(HTML::Window& window_object) void StyleSheet::visit_edges(Cell::Visitor& visitor) { Base::visit_edges(visitor); + visitor.visit(m_owner_node); visitor.visit(m_parent_style_sheet); } void StyleSheet::set_owner_node(DOM::Element* element) { - if (element) - m_owner_node = element->make_weak_ptr(); - else - m_owner_node = nullptr; + m_owner_node = element; } void StyleSheet::set_parent_css_style_sheet(CSSStyleSheet* parent) diff --git a/Userland/Libraries/LibWeb/CSS/StyleSheet.h b/Userland/Libraries/LibWeb/CSS/StyleSheet.h index 3304962b9d..f7e2c7424d 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleSheet.h +++ b/Userland/Libraries/LibWeb/CSS/StyleSheet.h @@ -50,9 +50,8 @@ protected: virtual void visit_edges(Cell::Visitor&) override; private: - WeakPtr m_owner_node; - - CSSStyleSheet* m_parent_style_sheet { nullptr }; + JS::GCPtr m_owner_node; + JS::GCPtr m_parent_style_sheet; String m_location; String m_title;