Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(744)

Unified Diff: third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp

Issue 1580883002: Oilpan: move AsyncMethodRunner to the heap. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rename to RawPtrOrMemberTrait<> Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp
diff --git a/third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp b/third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp
index 63bad0bcf17fe1c81ad1078dcb46c35d28b0d4b4..9e48afb2becb85d97f5f713249b3768643e65c95 100644
--- a/third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp
+++ b/third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp
@@ -111,13 +111,13 @@ SourceBuffer::SourceBuffer(PassOwnPtr<WebSourceBuffer> webSourceBuffer, MediaSou
, m_appendWindowEnd(std::numeric_limits<double>::infinity())
, m_firstInitializationSegmentReceived(false)
, m_pendingAppendDataOffset(0)
- , m_appendBufferAsyncPartRunner(this, &SourceBuffer::appendBufferAsyncPart)
+ , m_appendBufferAsyncPartRunner(AsyncMethodRunner<SourceBuffer>::create(this, &SourceBuffer::appendBufferAsyncPart))
, m_pendingRemoveStart(-1)
, m_pendingRemoveEnd(-1)
- , m_removeAsyncPartRunner(this, &SourceBuffer::removeAsyncPart)
+ , m_removeAsyncPartRunner(AsyncMethodRunner<SourceBuffer>::create(this, &SourceBuffer::removeAsyncPart))
, m_streamMaxSizeValid(false)
, m_streamMaxSize(0)
- , m_appendStreamAsyncPartRunner(this, &SourceBuffer::appendStreamAsyncPart)
+ , m_appendStreamAsyncPartRunner(AsyncMethodRunner<SourceBuffer>::create(this, &SourceBuffer::appendStreamAsyncPart))
{
ASSERT(m_webSourceBuffer);
ASSERT(m_source);
@@ -394,7 +394,7 @@ void SourceBuffer::remove(double start, double end, ExceptionState& exceptionSta
// 7.5. Return control to the caller and run the rest of the steps asynchronously.
m_pendingRemoveStart = start;
m_pendingRemoveEnd = end;
- m_removeAsyncPartRunner.runAsync();
+ m_removeAsyncPartRunner->runAsync();
}
void SourceBuffer::setTrackDefaults(TrackDefaultList* trackDefaults, ExceptionState& exceptionState)
@@ -433,15 +433,15 @@ void SourceBuffer::abortIfUpdating()
}
// 3.1. Abort the buffer append and stream append loop algorithms if they are running.
- m_appendBufferAsyncPartRunner.stop();
+ m_appendBufferAsyncPartRunner->stop();
m_pendingAppendData.clear();
m_pendingAppendDataOffset = 0;
- m_removeAsyncPartRunner.stop();
+ m_removeAsyncPartRunner->stop();
m_pendingRemoveStart = -1;
m_pendingRemoveEnd = -1;
- m_appendStreamAsyncPartRunner.stop();
+ m_appendStreamAsyncPartRunner->stop();
clearAppendStreamState();
// 3.2. Set the updating attribute to false.
@@ -501,23 +501,23 @@ bool SourceBuffer::hasPendingActivity() const
void SourceBuffer::suspend()
{
- m_appendBufferAsyncPartRunner.suspend();
- m_removeAsyncPartRunner.suspend();
- m_appendStreamAsyncPartRunner.suspend();
+ m_appendBufferAsyncPartRunner->suspend();
+ m_removeAsyncPartRunner->suspend();
+ m_appendStreamAsyncPartRunner->suspend();
}
void SourceBuffer::resume()
{
- m_appendBufferAsyncPartRunner.resume();
- m_removeAsyncPartRunner.resume();
- m_appendStreamAsyncPartRunner.resume();
+ m_appendBufferAsyncPartRunner->resume();
+ m_removeAsyncPartRunner->resume();
+ m_appendStreamAsyncPartRunner->resume();
}
void SourceBuffer::stop()
{
- m_appendBufferAsyncPartRunner.stop();
- m_removeAsyncPartRunner.stop();
- m_appendStreamAsyncPartRunner.stop();
+ m_appendBufferAsyncPartRunner->stop();
+ m_removeAsyncPartRunner->stop();
+ m_appendStreamAsyncPartRunner->stop();
}
ExecutionContext* SourceBuffer::executionContext() const
@@ -622,7 +622,7 @@ void SourceBuffer::appendBufferInternal(const unsigned char* data, unsigned size
scheduleEvent(EventTypeNames::updatestart);
// 5. Asynchronously run the buffer append algorithm.
- m_appendBufferAsyncPartRunner.runAsync();
+ m_appendBufferAsyncPartRunner->runAsync();
TRACE_EVENT_ASYNC_STEP_INTO0("media", "SourceBuffer::appendBuffer", this, "initialDelay");
}
@@ -663,7 +663,7 @@ void SourceBuffer::appendBufferAsyncPart()
m_pendingAppendDataOffset += appendSize;
if (m_pendingAppendDataOffset < m_pendingAppendData.size()) {
- m_appendBufferAsyncPartRunner.runAsync();
+ m_appendBufferAsyncPartRunner->runAsync();
TRACE_EVENT_ASYNC_STEP_INTO0("media", "SourceBuffer::appendBuffer", this, "nextPieceDelay");
return;
}
@@ -736,7 +736,7 @@ void SourceBuffer::appendStreamInternal(Stream* stream, ExceptionState& exceptio
stream->neuter();
m_loader = FileReaderLoader::create(FileReaderLoader::ReadByClient, this);
m_stream = stream;
- m_appendStreamAsyncPartRunner.runAsync();
+ m_appendStreamAsyncPartRunner->runAsync();
}
void SourceBuffer::appendStreamAsyncPart()
@@ -866,9 +866,12 @@ void SourceBuffer::didFail(FileError::ErrorCode errorCode)
DEFINE_TRACE(SourceBuffer)
{
visitor->trace(m_source);
- visitor->trace(m_stream);
visitor->trace(m_trackDefaults);
visitor->trace(m_asyncEventQueue);
+ visitor->trace(m_appendBufferAsyncPartRunner);
+ visitor->trace(m_removeAsyncPartRunner);
+ visitor->trace(m_appendStreamAsyncPartRunner);
+ visitor->trace(m_stream);
RefCountedGarbageCollectedEventTargetWithInlineData<SourceBuffer>::trace(visitor);
ActiveDOMObject::trace(visitor);
}

Powered by Google App Engine
This is Rietveld 408576698