| Index: Source/modules/webaudio/AudioBuffer.cpp
|
| diff --git a/Source/modules/webaudio/AudioBuffer.cpp b/Source/modules/webaudio/AudioBuffer.cpp
|
| index ae277a7619eb94226b98458a63796a58931f5153..263bfd71c9234c10267b7de8ccb71ceab4f9a16a 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::createFloat32Array(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 = createFloat32Array(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 = createFloat32Array(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)
|
|
|