Title: [239711] trunk/Source/WebCore
- Revision
- 239711
- Author
- jer.no...@apple.com
- Date
- 2019-01-07 16:04:52 -0800 (Mon, 07 Jan 2019)
Log Message
REGRESSION (r239519): ASSERTION FAILED: !m_adoptionIsRequired in com.apple.WebCore: void WTF::refIfNotNull<WebCore::CDMSessionMediaSourceAVFObjC> + 53
https://bugs.webkit.org/show_bug.cgi?id=193211
<rdar://problem/46937412>
Reviewed by Eric Carlson.
Make CDMSessionMediaSourceAVFObjC a CanMakeWeakPtr rather than RefCounted, as CDMSessions are stored in
std::unique_ptrs, and not in Ref or RefPtr.
* platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setCDMSession):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (239710 => 239711)
--- trunk/Source/WebCore/ChangeLog 2019-01-08 00:04:16 UTC (rev 239710)
+++ trunk/Source/WebCore/ChangeLog 2019-01-08 00:04:52 UTC (rev 239711)
@@ -1,3 +1,19 @@
+2019-01-07 Jer Noble <jer.no...@apple.com>
+
+ REGRESSION (r239519): ASSERTION FAILED: !m_adoptionIsRequired in com.apple.WebCore: void WTF::refIfNotNull<WebCore::CDMSessionMediaSourceAVFObjC> + 53
+ https://bugs.webkit.org/show_bug.cgi?id=193211
+ <rdar://problem/46937412>
+
+ Reviewed by Eric Carlson.
+
+ Make CDMSessionMediaSourceAVFObjC a CanMakeWeakPtr rather than RefCounted, as CDMSessions are stored in
+ std::unique_ptrs, and not in Ref or RefPtr.
+
+ * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h:
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
+ (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setCDMSession):
+
2019-01-07 David Kilzer <ddkil...@apple.com>
Prefer RetainPtr<NSObject> to RetainPtr<NSObject *>
Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h (239710 => 239711)
--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h 2019-01-08 00:04:16 UTC (rev 239710)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h 2019-01-08 00:04:52 UTC (rev 239711)
@@ -41,7 +41,7 @@
class CDMPrivateMediaSourceAVFObjC;
-class CDMSessionMediaSourceAVFObjC : public LegacyCDMSession, public SourceBufferPrivateAVFObjCErrorClient, public RefCounted<CDMSessionMediaSourceAVFObjC> {
+class CDMSessionMediaSourceAVFObjC : public LegacyCDMSession, public SourceBufferPrivateAVFObjCErrorClient, public CanMakeWeakPtr<CDMSessionMediaSourceAVFObjC> {
public:
CDMSessionMediaSourceAVFObjC(CDMPrivateMediaSourceAVFObjC&, LegacyCDMSessionClient*);
virtual ~CDMSessionMediaSourceAVFObjC();
Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h (239710 => 239711)
--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h 2019-01-08 00:04:16 UTC (rev 239710)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h 2019-01-08 00:04:52 UTC (rev 239711)
@@ -282,7 +282,7 @@
Deque<RetainPtr<id>> m_sizeChangeObservers;
Timer m_seekTimer;
#if ENABLE(LEGACY_ENCRYPTED_MEDIA)
- RefPtr<CDMSessionMediaSourceAVFObjC> m_session;
+ WeakPtr<CDMSessionMediaSourceAVFObjC> m_session;
#endif
MediaPlayer::NetworkState m_networkState;
MediaPlayer::ReadyState m_readyState;
Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm (239710 => 239711)
--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm 2019-01-08 00:04:16 UTC (rev 239710)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm 2019-01-08 00:04:52 UTC (rev 239711)
@@ -911,7 +911,7 @@
if (session == m_session)
return;
- m_session = toCDMSessionMediaSourceAVFObjC(session);
+ m_session = makeWeakPtr(toCDMSessionMediaSourceAVFObjC(session));
if (CDMSessionAVStreamSession* cdmStreamSession = toCDMSessionAVStreamSession(m_session.get()))
cdmStreamSession->setStreamSession(streamSession());
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes