X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fiirfilter.c;h=cd5bbc943ae9b6a59d5efdf7199851052f30fb9d;hb=d92f38c179591a608390ffa9fee59c309142e79d;hp=b202515827868afd8be75f47b03f4a967c2821a4;hpb=64425e005edf3bdd77c34c078c3e74ab5ecef557;p=ffmpeg diff --git a/libavcodec/iirfilter.c b/libavcodec/iirfilter.c index b2025158278..cd5bbc943ae 100644 --- a/libavcodec/iirfilter.c +++ b/libavcodec/iirfilter.c @@ -171,12 +171,10 @@ av_cold struct FFIIRFilterCoeffs *ff_iir_filter_init_coeffs(void *avc, if (order <= 0 || order > MAXORDER || cutoff_ratio >= 1.0) return NULL; - FF_ALLOCZ_OR_GOTO(avc, c, sizeof(FFIIRFilterCoeffs), - init_fail); - FF_ALLOC_OR_GOTO(avc, c->cx, sizeof(c->cx[0]) * ((order >> 1) + 1), - init_fail); - FF_ALLOC_OR_GOTO(avc, c->cy, sizeof(c->cy[0]) * order, - init_fail); + if (!(c = av_mallocz(sizeof(*c))) || + !(c->cx = av_malloc (sizeof(c->cx[0]) * ((order >> 1) + 1))) || + !(c->cy = av_malloc (sizeof(c->cy[0]) * order))) + goto free; c->order = order; switch (filt_type) { @@ -190,13 +188,12 @@ av_cold struct FFIIRFilterCoeffs *ff_iir_filter_init_coeffs(void *avc, break; default: av_log(avc, AV_LOG_ERROR, "filter type is not currently implemented\n"); - goto init_fail; + goto free; } if (!ret) return c; - -init_fail: +free: ff_iir_filter_free_coeffsp(&c); return NULL; }