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.
This commit is contained in:
Idan Horowitz 2024-04-05 20:13:51 +03:00 committed by Andreas Kling
commit 46ad9d51df
Notes: sideshowbarker 2024-07-16 22:14:49 +09:00
4 changed files with 10 additions and 2 deletions

View file

@ -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);
}
}

View file

@ -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<Optional<JS::PropertyDescriptor>> internal_get_own_property(JS::PropertyKey const& property_name) const override;

View file

@ -17,7 +17,6 @@ JS_DEFINE_ALLOCATOR(VideoTrackList);
VideoTrackList::VideoTrackList(JS::Realm& realm)
: DOM::EventTarget(realm, MayInterfereWithIndexedPropertyAccess::Yes)
, m_video_tracks(realm.heap())
{
}

View file

@ -47,7 +47,7 @@ private:
virtual void initialize(JS::Realm&) override;
virtual JS::ThrowCompletionOr<Optional<JS::PropertyDescriptor>> internal_get_own_property(JS::PropertyKey const& property_name) const override;
JS::MarkedVector<JS::NonnullGCPtr<VideoTrack>> m_video_tracks;
Vector<JS::NonnullGCPtr<VideoTrack>> m_video_tracks;
};
}