From 24ec5838ba3f496cd6786a6f1b98a674c902067f Mon Sep 17 00:00:00 2001 From: Matthew Olsson Date: Thu, 7 Mar 2024 09:31:52 -0700 Subject: [PATCH] LibWeb: Visit Animatable::m_associated_effects --- Userland/Libraries/LibWeb/Animations/Animatable.cpp | 8 ++++++++ Userland/Libraries/LibWeb/Animations/Animatable.h | 3 +++ Userland/Libraries/LibWeb/DOM/Element.cpp | 1 + 3 files changed, 12 insertions(+) diff --git a/Userland/Libraries/LibWeb/Animations/Animatable.cpp b/Userland/Libraries/LibWeb/Animations/Animatable.cpp index 4b817c51de..64512d41b8 100644 --- a/Userland/Libraries/LibWeb/Animations/Animatable.cpp +++ b/Userland/Libraries/LibWeb/Animations/Animatable.cpp @@ -94,4 +94,12 @@ void Animatable::disassociate_with_effect(JS::NonnullGCPtr effe m_associated_effects.remove_first_matching([&](auto element) { return effect == element; }); } +void Animatable::visit_edges(JS::Cell::Visitor& visitor) +{ + for (auto const& effect : m_associated_effects) + visitor.visit(effect); + visitor.visit(m_cached_animation_name_source); + visitor.visit(m_cached_animation_name_animation); +} + } diff --git a/Userland/Libraries/LibWeb/Animations/Animatable.h b/Userland/Libraries/LibWeb/Animations/Animatable.h index 80f8ea8618..0ba8c2afdc 100644 --- a/Userland/Libraries/LibWeb/Animations/Animatable.h +++ b/Userland/Libraries/LibWeb/Animations/Animatable.h @@ -39,6 +39,9 @@ public: JS::GCPtr cached_animation_name_animation() const { return m_cached_animation_name_animation; } void set_cached_animation_name_animation(JS::GCPtr value) { m_cached_animation_name_animation = value; } +protected: + void visit_edges(JS::Cell::Visitor&); + private: Vector> m_associated_effects; bool m_is_sorted_by_composite_order { true }; diff --git a/Userland/Libraries/LibWeb/DOM/Element.cpp b/Userland/Libraries/LibWeb/DOM/Element.cpp index 056e4ff323..2199d6c80c 100644 --- a/Userland/Libraries/LibWeb/DOM/Element.cpp +++ b/Userland/Libraries/LibWeb/DOM/Element.cpp @@ -91,6 +91,7 @@ void Element::visit_edges(Cell::Visitor& visitor) { Base::visit_edges(visitor); SlottableMixin::visit_edges(visitor); + Animatable::visit_edges(visitor); visitor.visit(m_attributes); visitor.visit(m_inline_style);