diff options
author | Moonchild <moonchild@palemoon.org> | 2020-05-06 00:30:30 +0000 |
---|---|---|
committer | wolfbeast <mcwerewolf@wolfbeast.com> | 2020-05-06 19:03:08 +0200 |
commit | 9c9d04e3e06fe63661be78fecc7d555a29a09085 (patch) | |
tree | 97037a1604b0c85cf5868f0adff8703b6154bfb8 | |
parent | 19504d5263f407b545f0e20d5b812d5604077d7a (diff) | |
download | UXP-9c9d04e3e06fe63661be78fecc7d555a29a09085.tar UXP-9c9d04e3e06fe63661be78fecc7d555a29a09085.tar.gz UXP-9c9d04e3e06fe63661be78fecc7d555a29a09085.tar.lz UXP-9c9d04e3e06fe63661be78fecc7d555a29a09085.tar.xz UXP-9c9d04e3e06fe63661be78fecc7d555a29a09085.zip |
[dom] Reorder some calls to improve memory safety
-rw-r--r-- | dom/media/webaudio/AudioBuffer.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/dom/media/webaudio/AudioBuffer.cpp b/dom/media/webaudio/AudioBuffer.cpp index e7eba2d48..e4252dfcf 100644 --- a/dom/media/webaudio/AudioBuffer.cpp +++ b/dom/media/webaudio/AudioBuffer.cpp @@ -254,8 +254,6 @@ void AudioBuffer::CopyFromChannel(const Float32Array& aDestination, uint32_t aChannelNumber, uint32_t aStartInChannel, ErrorResult& aRv) { - aDestination.ComputeLengthAndData(); - uint32_t length = aDestination.Length(); CheckedInt<uint32_t> end = aStartInChannel; end += length; @@ -266,6 +264,7 @@ AudioBuffer::CopyFromChannel(const Float32Array& aDestination, uint32_t aChannel } JS::AutoCheckCannotGC nogc; + aDestination.ComputeLengthAndData(); JSObject* channelArray = mJSChannels[aChannelNumber]; const float* sourceData = nullptr; if (channelArray) { @@ -296,8 +295,6 @@ AudioBuffer::CopyToChannel(JSContext* aJSContext, const Float32Array& aSource, uint32_t aChannelNumber, uint32_t aStartInChannel, ErrorResult& aRv) { - aSource.ComputeLengthAndData(); - uint32_t length = aSource.Length(); CheckedInt<uint32_t> end = aStartInChannel; end += length; @@ -320,6 +317,7 @@ AudioBuffer::CopyToChannel(JSContext* aJSContext, const Float32Array& aSource, return; } + aSource.ComputeLengthAndData(); bool isShared = false; float* channelData = JS_GetFloat32ArrayData(channelArray, &isShared, nogc); // The channelData arrays should all have originated in |