Ver Fonte

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.
Idan Horowitz há 1 ano atrás
pai
commit
46ad9d51df

+ 7 - 0
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);
+}
+
 }

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

+ 0 - 1
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())
 {
 }
 

+ 1 - 1
Userland/Libraries/LibWeb/HTML/VideoTrackList.h

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