Title: [274789] trunk/Source
Revision
274789
Author
[email protected]
Date
2021-03-22 13:30:12 -0700 (Mon, 22 Mar 2021)

Log Message

RealtimeMediaSource does not need to be a WeakPtr
https://bugs.webkit.org/show_bug.cgi?id=223573
<rdar://75583258>

Reviewed by Eric Carlson.

Source/WebCore:

Remove use of WeakPtr and ref the source instead.
Covered by existing tests.

* platform/mediastream/RealtimeIncomingAudioSource.cpp:
(WebCore::RealtimeIncomingAudioSource::OnChanged):
* platform/mediastream/RealtimeIncomingVideoSource.cpp:
(WebCore::RealtimeIncomingVideoSource::OnChanged):
* platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::updateHasStartedProducingData):
* platform/mediastream/RealtimeMediaSource.h:

Source/WebKit:

* UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (274788 => 274789)


--- trunk/Source/WebCore/ChangeLog	2021-03-22 20:30:11 UTC (rev 274788)
+++ trunk/Source/WebCore/ChangeLog	2021-03-22 20:30:12 UTC (rev 274789)
@@ -1,3 +1,22 @@
+2021-03-22  Youenn Fablet  <[email protected]>
+
+        RealtimeMediaSource does not need to be a WeakPtr
+        https://bugs.webkit.org/show_bug.cgi?id=223573
+        <rdar://75583258>
+
+        Reviewed by Eric Carlson.
+
+        Remove use of WeakPtr and ref the source instead.
+        Covered by existing tests.
+
+        * platform/mediastream/RealtimeIncomingAudioSource.cpp:
+        (WebCore::RealtimeIncomingAudioSource::OnChanged):
+        * platform/mediastream/RealtimeIncomingVideoSource.cpp:
+        (WebCore::RealtimeIncomingVideoSource::OnChanged):
+        * platform/mediastream/RealtimeMediaSource.cpp:
+        (WebCore::RealtimeMediaSource::updateHasStartedProducingData):
+        * platform/mediastream/RealtimeMediaSource.h:
+
 2021-03-22  Philippe Normand  <[email protected]>
 
         [GStreamer] gst_audio_format_fill_silence() is deprecated in GStreamer 1.20

Modified: trunk/Source/WebCore/platform/mediastream/RealtimeIncomingAudioSource.cpp (274788 => 274789)


--- trunk/Source/WebCore/platform/mediastream/RealtimeIncomingAudioSource.cpp	2021-03-22 20:30:11 UTC (rev 274788)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeIncomingAudioSource.cpp	2021-03-22 20:30:12 UTC (rev 274789)
@@ -64,12 +64,9 @@
 
 void RealtimeIncomingAudioSource::OnChanged()
 {
-    callOnMainThread([this, weakThis = makeWeakPtr(this)] {
-        if (!weakThis)
-            return;
-
-        if (m_audioTrack->state() == webrtc::MediaStreamTrackInterface::kEnded)
-            end();
+    callOnMainThread([protectedThis = makeRef(*this)] {
+        if (protectedThis->m_audioTrack->state() == webrtc::MediaStreamTrackInterface::kEnded)
+            protectedThis->end();
     });
 }
 

Modified: trunk/Source/WebCore/platform/mediastream/RealtimeIncomingVideoSource.cpp (274788 => 274789)


--- trunk/Source/WebCore/platform/mediastream/RealtimeIncomingVideoSource.cpp	2021-03-22 20:30:11 UTC (rev 274788)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeIncomingVideoSource.cpp	2021-03-22 20:30:12 UTC (rev 274789)
@@ -68,12 +68,9 @@
 
 void RealtimeIncomingVideoSource::OnChanged()
 {
-    callOnMainThread([this, weakThis = makeWeakPtr(this)] {
-        if (!weakThis)
-            return;
-
-        if (m_videoTrack->state() == webrtc::MediaStreamTrackInterface::kEnded)
-            end();
+    callOnMainThread([protectedThis = makeRef(*this)] {
+        if (protectedThis->m_videoTrack->state() == webrtc::MediaStreamTrackInterface::kEnded)
+            protectedThis->end();
     });
 }
 

Modified: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp (274788 => 274789)


--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp	2021-03-22 20:30:11 UTC (rev 274788)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp	2021-03-22 20:30:12 UTC (rev 274789)
@@ -175,13 +175,11 @@
     if (m_hasStartedProducingData)
         return;
 
-    callOnMainThread([this, weakThis = makeWeakPtr(this)] {
-        if (!weakThis)
+    callOnMainThread([protectedThis = makeRef(*this)] {
+        if (protectedThis->m_hasStartedProducingData)
             return;
-        if (m_hasStartedProducingData)
-            return;
-        m_hasStartedProducingData = true;
-        forEachObserver([&](auto& observer) {
+        protectedThis->m_hasStartedProducingData = true;
+        protectedThis->forEachObserver([&](auto& observer) {
             observer.hasStartedProducingData();
         });
     });

Modified: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.h (274788 => 274789)


--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.h	2021-03-22 20:30:11 UTC (rev 274788)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.h	2021-03-22 20:30:12 UTC (rev 274789)
@@ -69,7 +69,6 @@
 
 class WEBCORE_EXPORT RealtimeMediaSource
     : public ThreadSafeRefCounted<RealtimeMediaSource, WTF::DestructionThread::MainRunLoop>
-    , public CanMakeWeakPtr<RealtimeMediaSource, WeakPtrFactoryInitialization::Eager>
 #if !RELEASE_LOG_DISABLED
     , public LoggerHelper
 #endif

Modified: trunk/Source/WebKit/ChangeLog (274788 => 274789)


--- trunk/Source/WebKit/ChangeLog	2021-03-22 20:30:11 UTC (rev 274788)
+++ trunk/Source/WebKit/ChangeLog	2021-03-22 20:30:12 UTC (rev 274789)
@@ -1,3 +1,13 @@
+2021-03-22  Youenn Fablet  <[email protected]>
+
+        RealtimeMediaSource does not need to be a WeakPtr
+        https://bugs.webkit.org/show_bug.cgi?id=223573
+        <rdar://75583258>
+
+        Reviewed by Eric Carlson.
+
+        * UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.h:
+
 2021-03-22  Chris Dumez  <[email protected]>
 
         Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm:2681:9: runtime error: load of value nnn, which is not a valid value for type 'BOOL' (aka 'signed char')

Modified: trunk/Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.h (274788 => 274789)


--- trunk/Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.h	2021-03-22 20:30:11 UTC (rev 274788)
+++ trunk/Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.h	2021-03-22 20:30:12 UTC (rev 274789)
@@ -46,7 +46,7 @@
 namespace WebKit {
 class SpeechRecognitionRemoteRealtimeMediaSourceManager;
     
-class SpeechRecognitionRemoteRealtimeMediaSource : public WebCore::RealtimeMediaSource {
+class SpeechRecognitionRemoteRealtimeMediaSource : public WebCore::RealtimeMediaSource, public CanMakeWeakPtr<SpeechRecognitionRemoteRealtimeMediaSource> {
 public:
     static Ref<WebCore::RealtimeMediaSource> create(SpeechRecognitionRemoteRealtimeMediaSourceManager&, const WebCore::CaptureDevice&);
     ~SpeechRecognitionRemoteRealtimeMediaSource();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to