# HG changeset patch # User Chris Cannam # Date 1444150277 -3600 # Node ID a901eeeabf3b2dbf23d866d8be3f448ed672de8b # Parent 6fd3e25e4449d114a812c8f9767e083a8cbb6039 Slice does not appear to be necessary for a typed array copy after all diff -r 6fd3e25e4449 -r a901eeeabf3b fft/cross/FFT.js --- a/fft/cross/FFT.js Tue Oct 06 13:13:05 2015 +0100 +++ b/fft/cross/FFT.js Tue Oct 06 17:51:17 2015 +0100 @@ -22,7 +22,7 @@ ptr, ptr + n, ptr + n * 2, ptr + n * 3); var ro = new Float64Array(crossModule.HEAPU8.buffer, ptr + n * 2, this.size); var io = new Float64Array(crossModule.HEAPU8.buffer, ptr + n * 3, this.size); - return { real: ro.slice(0), imag: io.slice(0) }; + return { real: ro, imag: io }; } this.transformReal = function(real, inverse) { var ptr = this.ptr; @@ -32,7 +32,7 @@ ptr, 0, ptr + n * 2, ptr + n * 3); var ro = new Float64Array(crossModule.HEAPU8.buffer, ptr + n * 2, this.size); var io = new Float64Array(crossModule.HEAPU8.buffer, ptr + n * 3, this.size); - return { real: ro.slice(0), imag: io.slice(0) }; + return { real: ro, imag: io }; } this.dispose = function() { crossModule._free(this.ptr); diff -r 6fd3e25e4449 -r a901eeeabf3b fft/fftw/FFT.js --- a/fft/fftw/FFT.js Tue Oct 06 13:13:05 2015 +0100 +++ b/fft/fftw/FFT.js Tue Oct 06 17:51:17 2015 +0100 @@ -33,17 +33,13 @@ this.forward = function(real) { this.r.set(real); fftwf_execute(this.fplan); - return (new Float32Array - (fftwModule.HEAPU8.buffer, this.cptr, this.size+2)) - .slice(0); + return new Float32Array(fftwModule.HEAPU8.buffer, this.cptr, this.size+2); } this.inverse = function(cpx) { this.c.set(cpx); fftwf_execute(this.iplan); - return (new Float32Array - (fftwModule.HEAPU8.buffer, this.rptr, this.size)) - .slice(0); + return new Float32Array(fftwModule.HEAPU8.buffer, this.rptr, this.size); } this.dispose = function() { diff -r 6fd3e25e4449 -r a901eeeabf3b fft/kissfft/FFT.js --- a/fft/kissfft/FFT.js Tue Oct 06 13:13:05 2015 +0100 +++ b/fft/kissfft/FFT.js Tue Oct 06 17:51:17 2015 +0100 @@ -33,17 +33,15 @@ this.forward = function(real) { this.ri.set(real); kiss_fftr(this.fcfg, this.rptr, this.cptr); - return (new Float32Array - (kissFFTModule.HEAPU8.buffer, this.cptr, this.size + 2)) - .slice(0); + return new Float32Array(kissFFTModule.HEAPU8.buffer, + this.cptr, this.size + 2); } this.inverse = function(cpx) { this.ci.set(cpx); kiss_fftri(this.icfg, this.cptr, this.rptr); - return (new Float32Array - (kissFFTModule.HEAPU8.buffer, this.rptr, this.size)) - .slice(0); + return new Float32Array(kissFFTModule.HEAPU8.buffer, + this.rptr, this.size); } this.dispose = function() {