diff --git a/libcelt/kiss_fft.c b/libcelt/kiss_fft.c index 8cd95d908f4e9f9841fc18331c2fe7ad74dab3f8..2d5e9a6d563848fb9d9fc1f82dd95116912385a8 100644 --- a/libcelt/kiss_fft.c +++ b/libcelt/kiss_fft.c @@ -25,6 +25,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND #include "arch.h" #include "os_support.h" #include "mathops.h" +#include "stack_alloc.h" /* The guts header contains all the multiplication and addition macros that are defined for complex numbers. It also delares the kf_ internal functions. @@ -409,13 +410,10 @@ static void kf_bfly_generic( int u,k,q1,q; kiss_twiddle_cpx * twiddles = st->twiddles; kiss_fft_cpx t; - kiss_fft_cpx scratchbuf[17]; + VARDECL(kiss_fft_cpx, scratchbuf); int Norig = st->nfft; + ALLOC(scratchbuf, p, kiss_fft_cpx); - /*CHECKBUF(scratchbuf,nscratchbuf,p);*/ - if (p>17) - celt_fatal("KissFFT: max radix supported is 17"); - for ( u=0; u<m; ++u ) { k=u; for ( q1=0 ; q1<p ; ++q1 ) { @@ -450,13 +448,10 @@ static void ki_bfly_generic( int u,k,q1,q; kiss_twiddle_cpx * twiddles = st->twiddles; kiss_fft_cpx t; - kiss_fft_cpx scratchbuf[17]; + VARDECL(kiss_fft_cpx, scratchbuf); int Norig = st->nfft; + ALLOC(scratchbuf, p, kiss_fft_cpx); - /*CHECKBUF(scratchbuf,nscratchbuf,p);*/ - if (p>17) - celt_fatal("KissFFT: max radix supported is 17"); - for ( u=0; u<m; ++u ) { k=u; for ( q1=0 ; q1<p ; ++q1 ) {