diff options
author | haraken@chromium.org <haraken@chromium.org@bbb929c8-8fbe-4397-9dbb-9b2b20218538> | 2014-08-18 13:30:39 +0000 |
---|---|---|
committer | haraken@chromium.org <haraken@chromium.org@bbb929c8-8fbe-4397-9dbb-9b2b20218538> | 2014-08-18 13:30:39 +0000 |
commit | 770a69e26ffdd1e0fbb2496c9c17096d5977f5df (patch) | |
tree | 61596eb429a8d61fe7a786a1277ccd53119753aa /third_party/WebKit/Source/modules/webaudio/AudioProcessingEvent.h | |
parent | 3d67891be4c9de048e35970d2460295822d37065 (diff) | |
download | chromium_src-770a69e26ffdd1e0fbb2496c9c17096d5977f5df.zip chromium_src-770a69e26ffdd1e0fbb2496c9c17096d5977f5df.tar.gz chromium_src-770a69e26ffdd1e0fbb2496c9c17096d5977f5df.tar.bz2 |
Enable Oilpan by default for webaudio/
(1) This CL basically does the following two things:
- Drop "WillBe" types from webaudio/.
- Replace the hand-written reference counting system with RefCountedGarbageCollected.
(2) Given that AudioNode inherits from EventTarget, which is still on-heap
in non-oilpan builds, we need to make AudioNode RefCountedGarbageCollected.
(3) Ideally the following collections should use strong Members,
but we cannot do that because these collections are touched by audio threads
(which are not registered to oilpan). Thus we use raw pointers
with GC_PLUGIN_IGNORE.
- AudioNodeInput::m_disabledOutputs
- AudioSummingJunction::m_outputs
- AudioSummingJunction::m_renderingOutputs
- AudioContext::m_finishedNodes
- AudioContext::m_referencedNodes
- AudioContext::m_nodesMarkForDeletion
- AudioContext::m_nodesToDelete
- AudioContext::m_dirtySummingJunctions
- AudioContext::m_dirtyAudioNodeOutputs
- AudioContext::m_automaticPullNodes
- AudioContext::m_renderingAutomaticPullNodes
- AudioContext::m_deferredBreakConnectionList
- AudioContext::m_deferredFinishDerefList
(4) Ideally AudioDSPKernel should be moved to the heap and
AudioDSPKernel::m_kernelProcessor should be a Member.
However, we cannot do that because AudioDSPKernel can be allocated
by audio threads. Thus we leave AudioDSPKernel::m_kernelProcessor
as a raw pointer. This raw pointer is guaranteed to be safe.
(5) This CL fixes leaks of webaudio tests in LeakExpectations.
BUG=340522
Review URL: https://codereview.chromium.org/438293003
git-svn-id: svn://svn.chromium.org/blink/trunk@180457 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Diffstat (limited to 'third_party/WebKit/Source/modules/webaudio/AudioProcessingEvent.h')
-rw-r--r-- | third_party/WebKit/Source/modules/webaudio/AudioProcessingEvent.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/third_party/WebKit/Source/modules/webaudio/AudioProcessingEvent.h b/third_party/WebKit/Source/modules/webaudio/AudioProcessingEvent.h index 1e5911d..a19d91b 100644 --- a/third_party/WebKit/Source/modules/webaudio/AudioProcessingEvent.h +++ b/third_party/WebKit/Source/modules/webaudio/AudioProcessingEvent.h @@ -37,7 +37,7 @@ class AudioBuffer; class AudioProcessingEvent FINAL : public Event { public: static PassRefPtrWillBeRawPtr<AudioProcessingEvent> create(); - static PassRefPtrWillBeRawPtr<AudioProcessingEvent> create(PassRefPtrWillBeRawPtr<AudioBuffer> inputBuffer, PassRefPtrWillBeRawPtr<AudioBuffer> outputBuffer, double playbackTime); + static PassRefPtrWillBeRawPtr<AudioProcessingEvent> create(AudioBuffer* inputBuffer, AudioBuffer* outputBuffer, double playbackTime); virtual ~AudioProcessingEvent(); @@ -51,10 +51,10 @@ public: private: AudioProcessingEvent(); - AudioProcessingEvent(PassRefPtrWillBeRawPtr<AudioBuffer> inputBuffer, PassRefPtrWillBeRawPtr<AudioBuffer> outputBuffer, double playbackTime); + AudioProcessingEvent(AudioBuffer* inputBuffer, AudioBuffer* outputBuffer, double playbackTime); - RefPtrWillBeMember<AudioBuffer> m_inputBuffer; - RefPtrWillBeMember<AudioBuffer> m_outputBuffer; + PersistentWillBeMember<AudioBuffer> m_inputBuffer; + PersistentWillBeMember<AudioBuffer> m_outputBuffer; double m_playbackTime; }; |