fixed leaked ritrev table

This commit is contained in:
Jean-Marc Valin 2008-02-08 16:08:40 +11:00
parent 7351e286c8
commit e4475871fb
2 changed files with 3 additions and 3 deletions

View file

@ -130,7 +130,7 @@ void celt_encoder_destroy(CELTEncoder *st)
ec_byte_writeclear(&st->buf); ec_byte_writeclear(&st->buf);
mdct_clear(&st->mdct_lookup); mdct_clear(&st->mdct_lookup);
free(st->fft); kiss_fft_free(st->fft);
celt_free(st->window); celt_free(st->window);
celt_free(st->in_mem); celt_free(st->in_mem);

View file

@ -609,7 +609,7 @@ kiss_fft_cfg kiss_fft_alloc(int nfft,void * mem,size_t * lenmem )
{ {
kiss_fft_cfg st=NULL; kiss_fft_cfg st=NULL;
size_t memneeded = sizeof(struct kiss_fft_state) size_t memneeded = sizeof(struct kiss_fft_state)
+ sizeof(kiss_fft_cpx)*(nfft-1); /* twiddle factors*/ + sizeof(kiss_fft_cpx)*(nfft-1) + sizeof(int)*nfft; /* twiddle factors*/
if ( lenmem==NULL ) { if ( lenmem==NULL ) {
st = ( kiss_fft_cfg)KISS_FFT_MALLOC( memneeded ); st = ( kiss_fft_cfg)KISS_FFT_MALLOC( memneeded );
@ -636,7 +636,7 @@ kiss_fft_cfg kiss_fft_alloc(int nfft,void * mem,size_t * lenmem )
kf_factor(nfft,st->factors); kf_factor(nfft,st->factors);
/* bitrev */ /* bitrev */
st->bitrev = celt_alloc(sizeof(int)*(nfft)); st->bitrev = (int*)((char*)st + memneeded - sizeof(int)*nfft);
compute_bitrev_table(st->bitrev, 0, 1,1, st->factors,st); compute_bitrev_table(st->bitrev, 0, 1,1, st->factors,st);
} }
return st; return st;