changeset 21:a901eeeabf3b

Slice does not appear to be necessary for a typed array copy after all
author Chris Cannam
date Tue, 06 Oct 2015 17:51:17 +0100
parents 6fd3e25e4449
children 9fb720dd396c
files fft/cross/FFT.js fft/fftw/FFT.js fft/kissfft/FFT.js
diffstat 3 files changed, 8 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- 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);
--- 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() {
--- 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() {