avfilter/formats: Simplify cleanup for ff_merge_* functions

Now that the output's refs-array is only allocated once, it is NULL in
any error case and therefore needn't be freed at all; Instead an
av_assert1() has been added to guarantee it to be NULL.

Furthermore, it is unnecessary to av_freep(&ptr) when ptr == NULL.

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
Andreas Rheinhardt 2020-08-07 04:10:05 +02:00
parent 195a25a7ab
commit 9d1bf9cffe

View File

@ -140,10 +140,10 @@ AVFilterFormats *ff_merge_formats(AVFilterFormats *a, AVFilterFormats *b,
return ret;
fail:
if (ret) {
av_freep(&ret->refs);
av_assert1(!ret->refs);
av_freep(&ret->formats);
av_freep(&ret);
}
av_freep(&ret);
return NULL;
}
@ -167,10 +167,10 @@ AVFilterFormats *ff_merge_samplerates(AVFilterFormats *a,
return ret;
fail:
if (ret) {
av_freep(&ret->refs);
av_assert1(!ret->refs);
av_freep(&ret->formats);
av_freep(&ret);
}
av_freep(&ret);
return NULL;
}
@ -260,10 +260,10 @@ AVFilterChannelLayouts *ff_merge_channel_layouts(AVFilterChannelLayouts *a,
fail:
if (ret) {
av_freep(&ret->refs);
av_assert1(!ret->refs);
av_freep(&ret->channel_layouts);
av_freep(&ret);
}
av_freep(&ret);
return NULL;
}