From 270e0d4b581d31f94e79ebc7b268245fec656958 Mon Sep 17 00:00:00 2001 From: Idan Horowitz Date: Fri, 5 Apr 2024 20:12:44 +0300 Subject: [PATCH] LibWeb: Replace MarkedVector with Vector in VideoTrackList There's no need to make the m_video_tracks entries heap roots, we can visit them instead. --- Userland/Libraries/LibWeb/HTML/AudioTrackList.cpp | 1 - Userland/Libraries/LibWeb/HTML/AudioTrackList.h | 2 +- Userland/Libraries/LibWeb/HTML/VideoTrackList.cpp | 7 +++++++ Userland/Libraries/LibWeb/HTML/VideoTrackList.h | 2 ++ 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibWeb/HTML/AudioTrackList.cpp b/Userland/Libraries/LibWeb/HTML/AudioTrackList.cpp index 2748a3f806..20831c88ef 100644 --- a/Userland/Libraries/LibWeb/HTML/AudioTrackList.cpp +++ b/Userland/Libraries/LibWeb/HTML/AudioTrackList.cpp @@ -17,7 +17,6 @@ JS_DEFINE_ALLOCATOR(AudioTrackList); AudioTrackList::AudioTrackList(JS::Realm& realm) : DOM::EventTarget(realm, MayInterfereWithIndexedPropertyAccess::Yes) - , m_audio_tracks(realm.heap()) { } diff --git a/Userland/Libraries/LibWeb/HTML/AudioTrackList.h b/Userland/Libraries/LibWeb/HTML/AudioTrackList.h index 1d69724c08..bfebc42cfd 100644 --- a/Userland/Libraries/LibWeb/HTML/AudioTrackList.h +++ b/Userland/Libraries/LibWeb/HTML/AudioTrackList.h @@ -52,7 +52,7 @@ private: virtual void initialize(JS::Realm&) override; virtual JS::ThrowCompletionOr> internal_get_own_property(JS::PropertyKey const& property_name) const override; - JS::MarkedVector> m_audio_tracks; + Vector> m_audio_tracks; }; } diff --git a/Userland/Libraries/LibWeb/HTML/VideoTrackList.cpp b/Userland/Libraries/LibWeb/HTML/VideoTrackList.cpp index 616562de96..7765322593 100644 --- a/Userland/Libraries/LibWeb/HTML/VideoTrackList.cpp +++ b/Userland/Libraries/LibWeb/HTML/VideoTrackList.cpp @@ -127,4 +127,11 @@ WebIDL::CallbackType* VideoTrackList::onremovetrack() return event_handler_attribute(HTML::EventNames::removetrack); } +void VideoTrackList::visit_edges(JS::Cell::Visitor& visitor) +{ + Base::visit_edges(visitor); + for (auto const& track : m_video_tracks) + visitor.visit(track); +} + } diff --git a/Userland/Libraries/LibWeb/HTML/VideoTrackList.h b/Userland/Libraries/LibWeb/HTML/VideoTrackList.h index 6839101c8a..5cbe7e75c6 100644 --- a/Userland/Libraries/LibWeb/HTML/VideoTrackList.h +++ b/Userland/Libraries/LibWeb/HTML/VideoTrackList.h @@ -42,6 +42,8 @@ public: private: explicit VideoTrackList(JS::Realm&); + virtual void visit_edges(Visitor&) override; + virtual void initialize(JS::Realm&) override; virtual JS::ThrowCompletionOr> internal_get_own_property(JS::PropertyKey const& property_name) const override;