module-equalizer-sink: use fftwf_free in all the right places

Several mallocs were made using fftwf_malloc and were erroneously freed by
pa_xfree. This patch corrects these calls of pa_xfree to fftwf_free.
This commit is contained in:
Jason Newton 2014-12-05 08:38:30 +00:00 committed by David Henningsson
parent d72cb78d4c
commit 7201c9be98

View file

@ -232,7 +232,7 @@ static void alloc_input_buffers(struct userdata *u, size_t min_buffer_length) {
if (u->input[c]) { if (u->input[c]) {
if (!u->first_iteration) if (!u->first_iteration)
memcpy(tmp, u->input[c], u->overlap_size * sizeof(float)); memcpy(tmp, u->input[c], u->overlap_size * sizeof(float));
free(u->input[c]); fftwf_free(u->input[c]);
} }
u->input[c] = tmp; u->input[c] = tmp;
} }
@ -1344,22 +1344,22 @@ void pa__done(pa_module*m) {
fftwf_destroy_plan(u->inverse_plan); fftwf_destroy_plan(u->inverse_plan);
fftwf_destroy_plan(u->forward_plan); fftwf_destroy_plan(u->forward_plan);
pa_xfree(u->output_window); fftwf_free(u->output_window);
for (c = 0; c < u->channels; ++c) { for (c = 0; c < u->channels; ++c) {
pa_aupdate_free(u->a_H[c]); pa_aupdate_free(u->a_H[c]);
pa_xfree(u->overlap_accum[c]); fftwf_free(u->overlap_accum[c]);
pa_xfree(u->input[c]); fftwf_free(u->input[c]);
} }
pa_xfree(u->a_H); pa_xfree(u->a_H);
pa_xfree(u->overlap_accum); pa_xfree(u->overlap_accum);
pa_xfree(u->input); pa_xfree(u->input);
pa_xfree(u->work_buffer); fftwf_free(u->work_buffer);
pa_xfree(u->W); fftwf_free(u->W);
for (c = 0; c < u->channels; ++c) { for (c = 0; c < u->channels; ++c) {
pa_xfree(u->Xs[c]); pa_xfree(u->Xs[c]);
for (size_t i = 0; i < 2; ++i) for (size_t i = 0; i < 2; ++i)
pa_xfree(u->Hs[c][i]); fftwf_free(u->Hs[c][i]);
pa_xfree(u->Hs[c]); fftwf_free(u->Hs[c]);
} }
pa_xfree(u->Xs); pa_xfree(u->Xs);
pa_xfree(u->Hs); pa_xfree(u->Hs);