From f89d8c9d0e3e18548cad6bf1a32f0946feee5bb0 Mon Sep 17 00:00:00 2001 From: Andreas Pehrson Date: Tue, 12 Jan 2021 09:31:34 +0000 Subject: [PATCH] Bug 1663674 - Use WeakPtr instead of cycle collection in PlaybackTrackListener. r=jib Differential Revision: https://phabricator.services.mozilla.com/D99934 --- dom/media/DOMMediaStream.cpp | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/dom/media/DOMMediaStream.cpp b/dom/media/DOMMediaStream.cpp index 3bc18aed3ad9..c44ad279487c 100644 --- a/dom/media/DOMMediaStream.cpp +++ b/dom/media/DOMMediaStream.cpp @@ -68,14 +68,12 @@ static bool ContainsLiveAudioTracks( class DOMMediaStream::PlaybackTrackListener : public MediaStreamTrackConsumer { public: - explicit PlaybackTrackListener(DOMMediaStream* aStream) : mStream(aStream) {} + NS_INLINE_DECL_REFCOUNTING(PlaybackTrackListener) - NS_INLINE_DECL_CYCLE_COLLECTING_NATIVE_REFCOUNTING(PlaybackTrackListener) - NS_DECL_CYCLE_COLLECTION_NATIVE_CLASS(PlaybackTrackListener) + explicit PlaybackTrackListener(DOMMediaStream* aStream) : mStream(aStream) {} void NotifyEnded(MediaStreamTrack* aTrack) override { if (!mStream) { - MOZ_ASSERT(false); return; } @@ -91,15 +89,9 @@ class DOMMediaStream::PlaybackTrackListener : public MediaStreamTrackConsumer { protected: virtual ~PlaybackTrackListener() = default; - RefPtr mStream; + WeakPtr mStream; }; -NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(DOMMediaStream::PlaybackTrackListener, - AddRef) -NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(DOMMediaStream::PlaybackTrackListener, - Release) -NS_IMPL_CYCLE_COLLECTION(DOMMediaStream::PlaybackTrackListener, mStream) - NS_IMPL_CYCLE_COLLECTION_CLASS(DOMMediaStream) NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(DOMMediaStream, @@ -108,7 +100,6 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(DOMMediaStream, NS_IMPL_CYCLE_COLLECTION_UNLINK(mWindow) NS_IMPL_CYCLE_COLLECTION_UNLINK(mTracks) NS_IMPL_CYCLE_COLLECTION_UNLINK(mConsumersToKeepAlive) - NS_IMPL_CYCLE_COLLECTION_UNLINK(mPlaybackTrackListener) NS_IMPL_CYCLE_COLLECTION_UNLINK_WEAK_PTR NS_IMPL_CYCLE_COLLECTION_UNLINK_END @@ -117,7 +108,6 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(DOMMediaStream, NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mWindow) NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mTracks) NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mConsumersToKeepAlive) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mPlaybackTrackListener) NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END NS_IMPL_ADDREF_INHERITED(DOMMediaStream, DOMEventTargetHelper)