mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-19 08:15:31 +00:00
bug 1132328 remove mCurrentDecoder handling from RemoveDecoder() r=jya
--HG-- extra : rebase_source : 606b250875900916431115791d3bd0ad723fe4f0
This commit is contained in:
parent
d3e56cd4f8
commit
3ecf1f0bcf
@ -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);
|
||||
|
@ -114,7 +114,6 @@ public:
|
||||
|
||||
private:
|
||||
friend class DecodersToInitialize;
|
||||
friend class ReleaseDecoderTask;
|
||||
~TrackBuffer();
|
||||
|
||||
// Create a new decoder, set mCurrentDecoder to the new decoder and
|
||||
|
Loading…
Reference in New Issue
Block a user