[FFmpeg-devel] [PATCH 1/5] avfilter/vf_signature: Allocate arrays together

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Wed Feb 14 14:24:21 EET 2024


epirat07 at gmail.com:
> On 14 Feb 2024, at 13:03, Andreas Rheinhardt wrote:
> 
>> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
>> ---
>>  libavfilter/vf_signature.c | 9 ++-------
>>  1 file changed, 2 insertions(+), 7 deletions(-)
>>
>> diff --git a/libavfilter/vf_signature.c b/libavfilter/vf_signature.c
>> index 4896e8f2c1..eb48bf773d 100644
>> --- a/libavfilter/vf_signature.c
>> +++ b/libavfilter/vf_signature.c
>> @@ -250,14 +250,10 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *picref)
>>          int64_t* elemsignature;
>>          uint64_t* sortsignature;
>>
>> -        elemsignature = av_malloc_array(elemcat->elem_count, sizeof(int64_t));
>> +        elemsignature = av_malloc_array(elemcat->elem_count, 2 * sizeof(int64_t));
>>          if (!elemsignature)
>>              return AVERROR(ENOMEM);
>> -        sortsignature = av_malloc_array(elemcat->elem_count, sizeof(int64_t));
>> -        if (!sortsignature) {
>> -            av_freep(&elemsignature);
>> -            return AVERROR(ENOMEM);
>> -        }
>> +        sortsignature = elemsignature + elemcat->elem_count;
> 
> Just my 2cents as someone not maintaining this code, so feel free to ignore completely:
> 
> IMHO this makes it harder to understand what is going on, does it provide any meaningful
> benefit?
> 
> At the very least I would suggest to add a comment for the sake of whoever looks a this
> code next and tries to grasp what is happening there.
> 

The benefit is to have less code; e.g. if the second allocation fails,
one needs to have special cleanup code for the first one.

- Andreas



More information about the ffmpeg-devel mailing list