When creating a ConvolverNode with normalization (the default), the ConvolverNode was modifying the supplied AudioBuffer containing the desired impulse response. This happens because the normalization factor was applied to the buffer, convolver stages were computed, and then the normalization was undone. Due to floating-point roundoff, this can (and does) modify the buffer.
Created attachment 407798 [details] Patch
Created attachment 407801 [details] Patch
Comment on attachment 407801 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=407801&action=review > Source/WebCore/platform/audio/FFTFrame.cpp:175 > + Nit. There is an extra blank line here? > LayoutTests/webaudio/convolvernode-unmodified-buffer.html:33 > + // response if it hasn't been fixed not to do that. Nit. The comment sounds strange. > LayoutTests/webaudio/convolvernode-unmodified-buffer.html:53 > + // better be unmodified. Ditto.
Committed r266492: <https://trac.webkit.org/changeset/266492>
<rdar://problem/68235985>