| Index: Source/modules/webaudio/AudioBuffer.cpp
|
| diff --git a/Source/modules/webaudio/AudioBuffer.cpp b/Source/modules/webaudio/AudioBuffer.cpp
|
| index ba183853fafc03e1ecf7f00c73cff73e898ad393..49d67c3418d59109f9182503ce987c534dcdd338 100644
|
| --- a/Source/modules/webaudio/AudioBuffer.cpp
|
| +++ b/Source/modules/webaudio/AudioBuffer.cpp
|
| @@ -38,6 +38,7 @@
|
| #include "platform/audio/AudioBus.h"
|
| #include "platform/audio/AudioFileReader.h"
|
| #include "platform/audio/AudioUtilities.h"
|
| +#include "wtf/Float32Array.h"
|
|
|
| namespace blink {
|
|
|
| @@ -133,6 +134,14 @@ bool AudioBuffer::createdSuccessfully(unsigned desiredNumberOfChannels) const
|
| return numberOfChannels() == desiredNumberOfChannels;
|
| }
|
|
|
| +PassRefPtr<DOMFloat32Array> AudioBuffer::createFloat32ArrayOrNull(size_t length)
|
| +{
|
| + RefPtr<WTF::Float32Array> bufferView = WTF::Float32Array::createOrNull(length);
|
| + if (!bufferView)
|
| + return nullptr;
|
| + return DOMFloat32Array::create(bufferView.release());
|
| +}
|
| +
|
| AudioBuffer::AudioBuffer(unsigned numberOfChannels, size_t numberOfFrames, float sampleRate)
|
| : m_sampleRate(sampleRate)
|
| , m_length(numberOfFrames)
|
| @@ -140,7 +149,7 @@ AudioBuffer::AudioBuffer(unsigned numberOfChannels, size_t numberOfFrames, float
|
| m_channels.reserveCapacity(numberOfChannels);
|
|
|
| for (unsigned i = 0; i < numberOfChannels; ++i) {
|
| - RefPtr<DOMFloat32Array> channelDataArray = DOMFloat32Array::createOrNull(m_length);
|
| + RefPtr<DOMFloat32Array> channelDataArray = createFloat32ArrayOrNull(m_length);
|
| // If the channel data array could not be created, just return. The caller will need to
|
| // check that the desired number of channels were created.
|
| if (!channelDataArray) {
|
| @@ -160,7 +169,7 @@ AudioBuffer::AudioBuffer(AudioBus* bus)
|
| unsigned numberOfChannels = bus->numberOfChannels();
|
| m_channels.reserveCapacity(numberOfChannels);
|
| for (unsigned i = 0; i < numberOfChannels; ++i) {
|
| - RefPtr<DOMFloat32Array> channelDataArray = DOMFloat32Array::createOrNull(m_length);
|
| + RefPtr<DOMFloat32Array> channelDataArray = createFloat32ArrayOrNull(m_length);
|
| // If the channel data array could not be created, just return. The caller will need to
|
| // check that the desired number of channels were created.
|
| if (!channelDataArray)
|
|
|