From f43ac027232f6aeb826d7c29b1dfca9b3876f3ed Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Tue, 14 Oct 2014 18:52:51 +0200 Subject: [PATCH] avcodec/iirfilter: Make ff_iir_filter_free_state() also zero the freed pointer Signed-off-by: Michael Niedermayer --- libavcodec/iirfilter.c | 6 +++--- libavcodec/iirfilter.h | 6 +++--- libavcodec/psymodel.c | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/libavcodec/iirfilter.c b/libavcodec/iirfilter.c index b47f91d7b4..cb5871cb29 100644 --- a/libavcodec/iirfilter.c +++ b/libavcodec/iirfilter.c @@ -299,9 +299,9 @@ void ff_iir_filter_flt(const struct FFIIRFilterCoeffs *c, } } -av_cold void ff_iir_filter_free_state(struct FFIIRFilterState *state) +av_cold void ff_iir_filter_free_statep(struct FFIIRFilterState **state) { - av_free(state); + av_freep(state); } av_cold void ff_iir_filter_free_coeffsp(struct FFIIRFilterCoeffs **coeffsp) @@ -349,7 +349,7 @@ int main(void) printf("%6d %6d\n", x[i], y[i]); ff_iir_filter_free_coeffsp(&fcoeffs); - ff_iir_filter_free_state(fstate); + ff_iir_filter_free_statep(&fstate); return 0; } #endif /* TEST */ diff --git a/libavcodec/iirfilter.h b/libavcodec/iirfilter.h index cc9a661703..6f7bba67ac 100644 --- a/libavcodec/iirfilter.h +++ b/libavcodec/iirfilter.h @@ -107,11 +107,11 @@ struct FFIIRFilterState* ff_iir_filter_init_state(int order); void ff_iir_filter_free_coeffsp(struct FFIIRFilterCoeffs **coeffs); /** - * Free filter state. + * Free and zero filter state. * - * @param state pointer allocated with ff_iir_filter_init_state() + * @param state pointer to pointer allocated with ff_iir_filter_init_state() */ -void ff_iir_filter_free_state(struct FFIIRFilterState *state); +void ff_iir_filter_free_statep(struct FFIIRFilterState **state); /** * Perform IIR filtering on signed 16-bit input samples. diff --git a/libavcodec/psymodel.c b/libavcodec/psymodel.c index e7f3353c55..059cbefe37 100644 --- a/libavcodec/psymodel.c +++ b/libavcodec/psymodel.c @@ -141,7 +141,7 @@ av_cold void ff_psy_preprocess_end(struct FFPsyPreprocessContext *ctx) ff_iir_filter_free_coeffsp(&ctx->fcoeffs); if (ctx->fstate) for (i = 0; i < ctx->avctx->channels; i++) - ff_iir_filter_free_state(ctx->fstate[i]); + ff_iir_filter_free_statep(&ctx->fstate[i]); av_freep(&ctx->fstate); av_free(ctx); }