--- a/gst_plugins_base/gst-libs/gst/fft/kiss_fftr_f64.c Fri Mar 19 09:35:09 2010 +0200
+++ b/gst_plugins_base/gst-libs/gst/fft/kiss_fftr_f64.c Fri Apr 16 15:15:52 2010 +0300
@@ -43,9 +43,9 @@
nfft >>= 1;
kiss_fft_f64_alloc (nfft, inverse_fft, NULL, &subsize);
- memneeded =
- sizeof (struct kiss_fftr_f64_state) + subsize +
- sizeof (kiss_fft_f64_cpx) * (nfft * 2);
+ memneeded = ALIGN_STRUCT (sizeof (struct kiss_fftr_f64_state))
+ + ALIGN_STRUCT (subsize)
+ + sizeof (kiss_fft_f64_cpx) * (nfft * 2);
if (lenmem == NULL) {
st = (kiss_fftr_f64_cfg) KISS_FFT_F64_MALLOC (memneeded);
@@ -57,8 +57,9 @@
if (!st)
return NULL;
- st->substate = (kiss_fft_f64_cfg) (st + 1); /*just beyond kiss_fftr_f64_state struct */
- st->tmpbuf = (kiss_fft_f64_cpx *) (((char *) st->substate) + subsize);
+ st->substate = (kiss_fft_f64_cfg) (((char *) st) + ALIGN_STRUCT (sizeof (struct kiss_fftr_f64_state))); /*just beyond kiss_fftr_f64_state struct */
+ st->tmpbuf =
+ (kiss_fft_f64_cpx *) (((char *) st->substate) + ALIGN_STRUCT (subsize));
st->super_twiddles = st->tmpbuf + nfft;
kiss_fft_f64_alloc (nfft, inverse_fft, st->substate, &subsize);