diff --git a/Libraries/LibWeb/CSS/CSSStyleProperties.cpp b/Libraries/LibWeb/CSS/CSSStyleProperties.cpp index 93f6a1dee41..1ac05042e8b 100644 --- a/Libraries/LibWeb/CSS/CSSStyleProperties.cpp +++ b/Libraries/LibWeb/CSS/CSSStyleProperties.cpp @@ -85,8 +85,7 @@ void CSSStyleProperties::visit_edges(Visitor& visitor) { Base::visit_edges(visitor); for (auto& property : m_properties) { - if (property.value->is_image()) - property.value->as_image().visit_edges(visitor); + property.value->visit_edges(visitor); } } diff --git a/Libraries/LibWeb/CSS/CSSStyleValue.h b/Libraries/LibWeb/CSS/CSSStyleValue.h index 14f39ad61ac..73e5e00b84c 100644 --- a/Libraries/LibWeb/CSS/CSSStyleValue.h +++ b/Libraries/LibWeb/CSS/CSSStyleValue.h @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -369,6 +370,8 @@ public: [[nodiscard]] int to_font_slope() const; [[nodiscard]] int to_font_width() const; + virtual void visit_edges(JS::Cell::Visitor&) const { } + virtual bool equals(CSSStyleValue const& other) const = 0; bool operator==(CSSStyleValue const& other) const diff --git a/Libraries/LibWeb/CSS/StyleValues/ImageStyleValue.cpp b/Libraries/LibWeb/CSS/StyleValues/ImageStyleValue.cpp index df73bc93737..c35ddf8fcde 100644 --- a/Libraries/LibWeb/CSS/StyleValues/ImageStyleValue.cpp +++ b/Libraries/LibWeb/CSS/StyleValues/ImageStyleValue.cpp @@ -30,6 +30,7 @@ ImageStyleValue::~ImageStyleValue() = default; void ImageStyleValue::visit_edges(JS::Cell::Visitor& visitor) const { + Base::visit_edges(visitor); // FIXME: visit_edges in non-GC allocated classes is confusing pattern. // Consider making CSSStyleValue to be GC allocated instead. visitor.visit(m_resource_request); diff --git a/Libraries/LibWeb/CSS/StyleValues/ImageStyleValue.h b/Libraries/LibWeb/CSS/StyleValues/ImageStyleValue.h index 878c900c402..d643635efe0 100644 --- a/Libraries/LibWeb/CSS/StyleValues/ImageStyleValue.h +++ b/Libraries/LibWeb/CSS/StyleValues/ImageStyleValue.h @@ -21,6 +21,9 @@ namespace Web::CSS { class ImageStyleValue final : public AbstractImageStyleValue , public Weakable { + + using Base = AbstractImageStyleValue; + public: static ValueComparingNonnullRefPtr create(URL::URL const& url) { @@ -28,7 +31,7 @@ public: } virtual ~ImageStyleValue() override; - void visit_edges(JS::Cell::Visitor& visitor) const; + virtual void visit_edges(JS::Cell::Visitor& visitor) const override; virtual String to_string(SerializationMode) const override; virtual bool equals(CSSStyleValue const& other) const override;