LibWeb: Do not return a GC::Root from HTMLTrackElement's track getter

There's no need to create a root each time the getter is called. We
should also allocate it in the `initialize` overload rather than the
constructor.
This commit is contained in:
Timothy Flynn 2025-06-12 07:56:37 -04:00 committed by Tim Flynn
commit c6a94fe513
Notes: github-actions[bot] 2025-06-12 16:27:10 +00:00
2 changed files with 3 additions and 2 deletions

View file

@ -27,7 +27,6 @@ GC_DEFINE_ALLOCATOR(HTMLTrackElement);
HTMLTrackElement::HTMLTrackElement(DOM::Document& document, DOM::QualifiedName qualified_name) HTMLTrackElement::HTMLTrackElement(DOM::Document& document, DOM::QualifiedName qualified_name)
: HTMLElement(document, move(qualified_name)) : HTMLElement(document, move(qualified_name))
{ {
m_track = TextTrack::create(document.realm());
} }
HTMLTrackElement::~HTMLTrackElement() = default; HTMLTrackElement::~HTMLTrackElement() = default;
@ -36,6 +35,8 @@ void HTMLTrackElement::initialize(JS::Realm& realm)
{ {
WEB_SET_PROTOTYPE_FOR_INTERFACE(HTMLTrackElement); WEB_SET_PROTOTYPE_FOR_INTERFACE(HTMLTrackElement);
Base::initialize(realm); Base::initialize(realm);
m_track = TextTrack::create(realm);
} }
void HTMLTrackElement::visit_edges(Cell::Visitor& visitor) void HTMLTrackElement::visit_edges(Cell::Visitor& visitor)

View file

@ -21,7 +21,7 @@ public:
WebIDL::UnsignedShort ready_state(); WebIDL::UnsignedShort ready_state();
GC::Root<TextTrack> track() { return m_track; } GC::Ref<TextTrack> track() { return *m_track; }
private: private:
HTMLTrackElement(DOM::Document&, DOM::QualifiedName); HTMLTrackElement(DOM::Document&, DOM::QualifiedName);