Bug 1247189 - part4 : ensure we always detach TBM from demuxers. draft
authorAlastor Wu <alwu@mozilla.com>
Thu, 12 Oct 2017 10:49:21 +0800
changeset 678943 57e7a9b93609665e7fba4f0815842028c56dff41
parent 678942 27a49e98782c152f169d948c247c9e9e504f7f81
child 678944 0bfa107c84a4dcf72517cb5ffd9f192827143d30
push id84076
push useralwu@mozilla.com
push dateThu, 12 Oct 2017 02:49:38 +0000
bugs1247189
milestone58.0a1
Bug 1247189 - part4 : ensure we always detach TBM from demuxers. Ensure the TBM would always be detached from demuxers, before calling TBM::detach(). MozReview-Commit-ID: DLWZHB3M3GG
dom/media/mediasource/SourceBuffer.cpp
--- a/dom/media/mediasource/SourceBuffer.cpp
+++ b/dom/media/mediasource/SourceBuffer.cpp
@@ -574,21 +574,17 @@ SourceBuffer::HighestEndTime()
   return mTrackBuffersManager
          ? mTrackBuffersManager->HighestEndTime().ToSeconds()
          : 0.0;
 }
 
 NS_IMPL_CYCLE_COLLECTION_CLASS(SourceBuffer)
 
 NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(SourceBuffer)
-  // Tell the TrackBuffer to end its current SourceBufferResource.
-  TrackBuffersManager* manager = tmp->mTrackBuffersManager;
-  if (manager) {
-    manager->Detach();
-  }
+  tmp->Detach();
   NS_IMPL_CYCLE_COLLECTION_UNLINK(mMediaSource)
   NS_IMPL_CYCLE_COLLECTION_UNLINK(mBuffered)
 NS_IMPL_CYCLE_COLLECTION_UNLINK_END_INHERITED(DOMEventTargetHelper)
 
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(SourceBuffer,
                                                   DOMEventTargetHelper)
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mMediaSource)
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mBuffered)