bug 1132328 remove mCurrentDecoder handling from RemoveDecoder() r=jya

--HG--
extra : rebase_source : 606b250875900916431115791d3bd0ad723fe4f0
This commit is contained in:
Karl Tomlinson 2015-02-12 15:57:40 +13:00
parent d3e56cd4f8
commit 3ecf1f0bcf
2 changed files with 2 additions and 9 deletions

View File

@ -821,17 +821,12 @@ TrackBuffer::Dump(const char* aPath)
class ReleaseDecoderTask : public nsRunnable {
public:
ReleaseDecoderTask(SourceBufferDecoder* aDecoder, TrackBuffer* aTrackBuffer)
ReleaseDecoderTask(SourceBufferDecoder* aDecoder)
: mDecoder(aDecoder)
, mTrackBuffer(aTrackBuffer)
{
}
NS_IMETHOD Run() MOZ_OVERRIDE MOZ_FINAL {
if (mTrackBuffer->mCurrentDecoder == mDecoder) {
mTrackBuffer->DiscardCurrentDecoder();
}
mDecoder->GetReader()->BreakCycles();
mDecoder = nullptr;
return NS_OK;
@ -839,7 +834,6 @@ public:
private:
nsRefPtr<SourceBufferDecoder> mDecoder;
nsRefPtr<TrackBuffer> mTrackBuffer;
};
class DelayedDispatchToMainThread : public nsRunnable {
@ -856,7 +850,7 @@ public:
// is destroyed.
mDecoder->GetReader()->Shutdown();
mDecoder->GetReader()->ClearDecoder();
RefPtr<nsIRunnable> task = new ReleaseDecoderTask(mDecoder, mTrackBuffer);
RefPtr<nsIRunnable> task = new ReleaseDecoderTask(mDecoder);
mDecoder = nullptr;
// task now holds the only ref to the decoder.
NS_DispatchToMainThread(task);

View File

@ -114,7 +114,6 @@ public:
private:
friend class DecodersToInitialize;
friend class ReleaseDecoderTask;
~TrackBuffer();
// Create a new decoder, set mCurrentDecoder to the new decoder and