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.
This commit is contained in:
Idan Horowitz 2024-04-05 20:12:44 +03:00 committed by Andreas Kling
commit 270e0d4b58
Notes: sideshowbarker 2024-07-17 04:01:41 +09:00
4 changed files with 10 additions and 2 deletions

View file

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

View file

@ -52,7 +52,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<AudioTrack>> m_audio_tracks;
Vector<JS::NonnullGCPtr<AudioTrack>> m_audio_tracks;
};
}

View file

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

View file

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