This puts ff_fast_malloc() and av_fast_malloc() in line with ff_fast_realloc()
Signed-off-by: James Almer <jamr...@gmail.com> --- The alternative to this set would be to move av_fast_padded_malloc() from avcodec to avutil, and moving ff_fast_malloc() from mem_internal.h to mem.c, in which case it will no longer be inlined for easy use. libavutil/mem_internal.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/libavutil/mem_internal.h b/libavutil/mem_internal.h index ee2575c85f..76277d3fe4 100644 --- a/libavutil/mem_internal.h +++ b/libavutil/mem_internal.h @@ -24,6 +24,7 @@ #include "config.h" #include <stdint.h> +#include <stdatomic.h> #include "avassert.h" #include "mem.h" @@ -138,14 +139,21 @@ static inline int ff_fast_malloc(void *ptr, unsigned int *size, size_t min_size, int zero_realloc) { + size_t max_size; void *val; + av_max_alloc_get(&max_size); + memcpy(&val, ptr, sizeof(val)); if (min_size <= *size) { av_assert0(val || !min_size); return 0; } - min_size = FFMAX(min_size + min_size / 16 + 32, min_size); + if (min_size > max_size) { + *size = 0; + return 1; + } + min_size = FFMIN(max_size, FFMAX(min_size + min_size / 16 + 32, min_size)); av_freep(ptr); val = zero_realloc ? av_mallocz(min_size) : av_malloc(min_size); memcpy(ptr, &val, sizeof(val)); -- 2.31.1 _______________________________________________ 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".