summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-10-14 18:52:51 +0200
committerMichael Niedermayer <michaelni@gmx.at>2014-10-14 20:46:15 +0200
commitf43ac027232f6aeb826d7c29b1dfca9b3876f3ed (patch)
treea4397fa74ada462b5bff34d114682ca8c63061fc
parent43fb16cf74718fe6c393c5f20d0bfaea4e3e8cb4 (diff)
avcodec/iirfilter: Make ff_iir_filter_free_state() also zero the freed pointer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavcodec/iirfilter.c6
-rw-r--r--libavcodec/iirfilter.h6
-rw-r--r--libavcodec/psymodel.c2
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);
}