From 46ad9d51df6389b5f7e4493c8d11b147fe0c1d7a Mon Sep 17 00:00:00 2001 From: Idan Horowitz Date: Fri, 5 Apr 2024 20:13:51 +0300 Subject: [PATCH] LibWeb: Replace MarkedVector with Vector in AudioTrackList There's no need to make the m_audio_tracks entries heap roots, we can visit them instead. --- Userland/Libraries/LibWeb/HTML/AudioTrackList.cpp | 7 +++++++ Userland/Libraries/LibWeb/HTML/AudioTrackList.h | 2 ++ Userland/Libraries/LibWeb/HTML/VideoTrackList.cpp | 1 - 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 20831c88ef1..4e4ca2fd9b8 100644 --- a/Userland/Libraries/LibWeb/HTML/AudioTrackList.cpp +++ b/Userland/Libraries/LibWeb/HTML/AudioTrackList.cpp @@ -119,4 +119,11 @@ WebIDL::CallbackType* AudioTrackList::onremovetrack() return event_handler_attribute(HTML::EventNames::removetrack); } +void AudioTrackList::visit_edges(JS::Cell::Visitor& visitor) +{ + Base::visit_edges(visitor); + for (auto const& track : m_audio_tracks) + visitor.visit(track); +} + } diff --git a/Userland/Libraries/LibWeb/HTML/AudioTrackList.h b/Userland/Libraries/LibWeb/HTML/AudioTrackList.h index bfebc42cfdc..a3d7eccfd13 100644 --- a/Userland/Libraries/LibWeb/HTML/AudioTrackList.h +++ b/Userland/Libraries/LibWeb/HTML/AudioTrackList.h @@ -49,6 +49,8 @@ public: private: explicit AudioTrackList(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; diff --git a/Userland/Libraries/LibWeb/HTML/VideoTrackList.cpp b/Userland/Libraries/LibWeb/HTML/VideoTrackList.cpp index 77653225936..70299a9120b 100644 --- a/Userland/Libraries/LibWeb/HTML/VideoTrackList.cpp +++ b/Userland/Libraries/LibWeb/HTML/VideoTrackList.cpp @@ -17,7 +17,6 @@ JS_DEFINE_ALLOCATOR(VideoTrackList); VideoTrackList::VideoTrackList(JS::Realm& realm) : DOM::EventTarget(realm, MayInterfereWithIndexedPropertyAccess::Yes) - , m_video_tracks(realm.heap()) { } diff --git a/Userland/Libraries/LibWeb/HTML/VideoTrackList.h b/Userland/Libraries/LibWeb/HTML/VideoTrackList.h index 5cbe7e75c63..607d6e0d76a 100644 --- a/Userland/Libraries/LibWeb/HTML/VideoTrackList.h +++ b/Userland/Libraries/LibWeb/HTML/VideoTrackList.h @@ -47,7 +47,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_video_tracks; + Vector> m_video_tracks; }; }