Title: [233596] trunk/Source/WebCore
Revision
233596
Author
[email protected]
Date
2018-07-06 15:19:19 -0700 (Fri, 06 Jul 2018)

Log Message

Make HTMLMediaElement::remove*Track take a Ref<>&&
https://bugs.webkit.org/show_bug.cgi?id=187407

Reviewed by Zalan Bujtas.

Make these functions take Ref<>&& since they can delete track objects.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::removeAudioTrack):
(WebCore::HTMLMediaElement::removeTextTrack):
(WebCore::HTMLMediaElement::removeVideoTrack):
(WebCore::HTMLMediaElement::forgetResourceSpecificTracks):
* html/HTMLMediaElement.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (233595 => 233596)


--- trunk/Source/WebCore/ChangeLog	2018-07-06 21:50:10 UTC (rev 233595)
+++ trunk/Source/WebCore/ChangeLog	2018-07-06 22:19:19 UTC (rev 233596)
@@ -1,3 +1,19 @@
+2018-07-06  Ryosuke Niwa  <[email protected]>
+
+        Make HTMLMediaElement::remove*Track take a Ref<>&&
+        https://bugs.webkit.org/show_bug.cgi?id=187407
+
+        Reviewed by Zalan Bujtas.
+
+        Make these functions take Ref<>&& since they can delete track objects.
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::removeAudioTrack):
+        (WebCore::HTMLMediaElement::removeTextTrack):
+        (WebCore::HTMLMediaElement::removeVideoTrack):
+        (WebCore::HTMLMediaElement::forgetResourceSpecificTracks):
+        * html/HTMLMediaElement.h:
+
 2018-07-06  Antoine Quint  <[email protected]>
 
         [Web Animations] Make WPT test at interfaces/KeyframeEffect/processing-a-keyframes-argument-002.html pass reliably

Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (233595 => 233596)


--- trunk/Source/WebCore/html/HTMLMediaElement.cpp	2018-07-06 21:50:10 UTC (rev 233595)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp	2018-07-06 22:19:19 UTC (rev 233596)
@@ -4046,18 +4046,18 @@
     videoTracks().append(WTFMove(track));
 }
 
-void HTMLMediaElement::removeAudioTrack(AudioTrack& track)
+void HTMLMediaElement::removeAudioTrack(Ref<AudioTrack>&& track)
 {
-    track.clearClient();
-    m_audioTracks->remove(track);
+    track->clearClient();
+    m_audioTracks->remove(track.get());
 }
 
-void HTMLMediaElement::removeTextTrack(TextTrack& track, bool scheduleEvent)
+void HTMLMediaElement::removeTextTrack(Ref<TextTrack>&& track, bool scheduleEvent)
 {
     TrackDisplayUpdateScope scope { *this };
-    if (auto cues = makeRefPtr(track.cues()))
+    if (auto cues = makeRefPtr(track->cues()))
         textTrackRemoveCues(track, *cues);
-    track.clearClient();
+    track->clearClient();
     if (m_textTracks)
         m_textTracks->remove(track, scheduleEvent);
 
@@ -4064,9 +4064,9 @@
     closeCaptionTracksChanged();
 }
 
-void HTMLMediaElement::removeVideoTrack(VideoTrack& track)
+void HTMLMediaElement::removeVideoTrack(Ref<VideoTrack>&& track)
 {
-    track.clearClient();
+    track->clearClient();
     m_videoTracks->remove(track);
 }
 
@@ -4078,9 +4078,9 @@
     if (m_textTracks) {
         TrackDisplayUpdateScope scope { *this };
         for (int i = m_textTracks->length() - 1; i >= 0; --i) {
-            auto& track = *m_textTracks->item(i);
-            if (track.trackType() == TextTrack::InBand)
-                removeTextTrack(track, false);
+            auto track = makeRef(*m_textTracks->item(i));
+            if (track->trackType() == TextTrack::InBand)
+                removeTextTrack(WTFMove(track), false);
         }
     }
 

Modified: trunk/Source/WebCore/html/HTMLMediaElement.h (233595 => 233596)


--- trunk/Source/WebCore/html/HTMLMediaElement.h	2018-07-06 21:50:10 UTC (rev 233595)
+++ trunk/Source/WebCore/html/HTMLMediaElement.h	2018-07-06 22:19:19 UTC (rev 233596)
@@ -339,9 +339,9 @@
     void addAudioTrack(Ref<AudioTrack>&&);
     void addTextTrack(Ref<TextTrack>&&);
     void addVideoTrack(Ref<VideoTrack>&&);
-    void removeAudioTrack(AudioTrack&);
-    void removeTextTrack(TextTrack&, bool scheduleEvent = true);
-    void removeVideoTrack(VideoTrack&);
+    void removeAudioTrack(Ref<AudioTrack>&&);
+    void removeTextTrack(Ref<TextTrack>&&, bool scheduleEvent = true);
+    void removeVideoTrack(Ref<VideoTrack>&&);
     void forgetResourceSpecificTracks();
     void closeCaptionTracksChanged();
     void notifyMediaPlayerOfTextTrackChanges();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to