Use _mm_free on memory allocated with _mm_malloc.

kiss_fft_alloc and kiss_fftr_alloc internally use KISS_FFT_MALLOC to allocate memory, which is defined to _mm_malloc in a SIMD enabled application. Calling free() on memory allocated with _mm_malloc will result in unpredictable behavior. The configuration data allocated with _mm_malloc should be freed with a corresponding _mm_free.
This commit is contained in:
Stewart Hildebrand 2018-06-03 14:29:12 -04:00
parent 1c3d6f5aa9
commit 8921e1a3b6
3 changed files with 3 additions and 3 deletions

2
README
View File

@ -22,7 +22,7 @@ USAGE:
... // transformed. DC is in cx_out[0].r and cx_out[0].i ... // transformed. DC is in cx_out[0].r and cx_out[0].i
free(cfg); kiss_fft_free(cfg);
Note: frequency-domain data is stored from dc up to 2pi. Note: frequency-domain data is stored from dc up to 2pi.
so cx_out[0] is the dc bin of the FFT so cx_out[0] is the dc bin of the FFT

View File

@ -99,7 +99,7 @@ void kiss_fft_stride(kiss_fft_cfg cfg,const kiss_fft_cpx *fin,kiss_fft_cpx *fout
/* If kiss_fft_alloc allocated a buffer, it is one contiguous /* If kiss_fft_alloc allocated a buffer, it is one contiguous
buffer and can be simply free()d when no longer needed*/ buffer and can be simply free()d when no longer needed*/
#define kiss_fft_free free #define kiss_fft_free KISS_FFT_FREE
/* /*
Cleans up some memory that gets managed internally. Not necessary to call, but it might clean up Cleans up some memory that gets managed internally. Not necessary to call, but it might clean up

View File

@ -38,7 +38,7 @@ void kiss_fftri(kiss_fftr_cfg cfg,const kiss_fft_cpx *freqdata,kiss_fft_scalar *
output timedata has nfft scalar points output timedata has nfft scalar points
*/ */
#define kiss_fftr_free free #define kiss_fftr_free KISS_FFT_FREE
#ifdef __cplusplus #ifdef __cplusplus
} }