Simplifies code and reduces the number of allocations a bit by overallocating.
Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@outlook.com> --- fftools/cmdutils.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c index 0b57552e5c..3c8e5a82cd 100644 --- a/fftools/cmdutils.c +++ b/fftools/cmdutils.c @@ -2216,19 +2216,13 @@ void *grow_array(void *array, int elem_size, int *size, int new_size) void *allocate_array_elem(void *ptr, size_t elem_size, int *nb_elems) { - void *new_elem, **array; + void *new_elem; - memcpy(&array, ptr, sizeof(array)); - if (*nb_elems == INT_MAX) { - av_log(NULL, AV_LOG_ERROR, "Array too big.\n"); + if (!(new_elem = av_mallocz(elem_size)) || + av_dynarray_add_nofree(ptr, nb_elems, new_elem) < 0) { + av_log(NULL, AV_LOG_ERROR, "Could not alloc buffer.\n"); exit_program(1); } - new_elem = av_mallocz(elem_size); - if (!new_elem) - exit_program(1); - GROW_ARRAY(array, *nb_elems); - memcpy(ptr, &array, sizeof(array)); - array[*nb_elems - 1] = new_elem; return new_elem; } -- 2.32.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".