Title: [188702] trunk/Source/WebCore
- Revision
- 188702
- Author
- [email protected]
- Date
- 2015-08-20 14:32:50 -0700 (Thu, 20 Aug 2015)
Log Message
Stop using cancelCallOnMainThread in MediaPlayerPrivateAVFoundation
https://bugs.webkit.org/show_bug.cgi?id=148248
Reviewed by Tim Horton.
Replace cancelCallOnMainThread with WeakPtrs, just like in MediaPlayerPrivateAVFoundationObjC.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::mainThreadCallback):
(WebCore::MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification):
(WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification):
(WebCore::MediaPlayerPrivateAVFoundation::~MediaPlayerPrivateAVFoundation): Deleted.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (188701 => 188702)
--- trunk/Source/WebCore/ChangeLog 2015-08-20 21:28:34 UTC (rev 188701)
+++ trunk/Source/WebCore/ChangeLog 2015-08-20 21:32:50 UTC (rev 188702)
@@ -1,5 +1,21 @@
2015-08-20 Anders Carlsson <[email protected]>
+ Stop using cancelCallOnMainThread in MediaPlayerPrivateAVFoundation
+ https://bugs.webkit.org/show_bug.cgi?id=148248
+
+ Reviewed by Tim Horton.
+
+ Replace cancelCallOnMainThread with WeakPtrs, just like in MediaPlayerPrivateAVFoundationObjC.
+
+ * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
+ (WebCore::MediaPlayerPrivateAVFoundation::mainThreadCallback):
+ (WebCore::MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification):
+ (WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification):
+ (WebCore::MediaPlayerPrivateAVFoundation::~MediaPlayerPrivateAVFoundation): Deleted.
+ * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
+
+2015-08-20 Anders Carlsson <[email protected]>
+
Stop using cancelCallOnMainThread in DisplayRefreshMonitorMac
https://bugs.webkit.org/show_bug.cgi?id=148241
Modified: trunk/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp (188701 => 188702)
--- trunk/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp 2015-08-20 21:28:34 UTC (rev 188701)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp 2015-08-20 21:32:50 UTC (rev 188702)
@@ -86,7 +86,6 @@
{
LOG(Media, "MediaPlayerPrivateAVFoundation::~MediaPlayerPrivateAVFoundation(%p)", this);
setIgnoreLoadStateChanges(true);
- cancelCallOnMainThread(mainThreadCallback, this);
}
MediaPlayerPrivateAVFoundation::MediaRenderingMode MediaPlayerPrivateAVFoundation::currentRenderingMode() const
@@ -744,12 +743,12 @@
}
}
-void MediaPlayerPrivateAVFoundation::mainThreadCallback(void* context)
+void MediaPlayerPrivateAVFoundation::mainThreadCallback()
{
- LOG(Media, "MediaPlayerPrivateAVFoundation::mainThreadCallback(%p)", context);
- MediaPlayerPrivateAVFoundation* player = static_cast<MediaPlayerPrivateAVFoundation*>(context);
- player->clearMainThreadPendingFlag();
- player->dispatchNotification();
+ LOG(Media, "MediaPlayerPrivateAVFoundation::mainThreadCallback(%p)", this);
+
+ clearMainThreadPendingFlag();
+ dispatchNotification();
}
void MediaPlayerPrivateAVFoundation::clearMainThreadPendingFlag()
@@ -800,7 +799,14 @@
#endif
if (delayDispatch && !m_mainThreadCallPending) {
m_mainThreadCallPending = true;
- callOnMainThread(mainThreadCallback, this);
+
+ auto weakThis = createWeakPtr();
+ callOnMainThread([weakThis] {
+ if (!weakThis)
+ return;
+
+ weakThis->mainThreadCallback();
+ });
}
m_queueMutex.unlock();
@@ -831,9 +837,16 @@
m_queuedNotifications.remove(0);
}
- if (!m_queuedNotifications.isEmpty() && !m_mainThreadCallPending)
- callOnMainThread(mainThreadCallback, this);
+ if (!m_queuedNotifications.isEmpty() && !m_mainThreadCallPending) {
+ auto weakThis = createWeakPtr();
+ callOnMainThread([weakThis] {
+ if (!weakThis)
+ return;
+ weakThis->mainThreadCallback();
+ });
+ }
+
if (!notification.isValid())
return;
}
Modified: trunk/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h (188701 => 188702)
--- trunk/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h 2015-08-20 21:28:34 UTC (rev 188701)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h 2015-08-20 21:32:50 UTC (rev 188702)
@@ -288,7 +288,7 @@
virtual void tearDownVideoRendering();
bool hasSetUpVideoRendering() const;
- static void mainThreadCallback(void*);
+ void mainThreadCallback();
void invalidateCachedDuration();
@@ -308,7 +308,7 @@
void clearTextTracks();
Vector<RefPtr<InbandTextTrackPrivateAVF>> m_textTracks;
-virtual URL resolvedURL() const;
+ virtual URL resolvedURL() const;
private:
MediaPlayer* m_player;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes