From 81d4b8fb3cdc234d2961b23890aa02d4d29e8842 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Sat, 24 Oct 2020 14:23:38 +0200 Subject: avcodec/bitstream: Stop allocating one VLCcode more than needed Allocating one temporary entry more than needed was made necessary by the COPY loop below writing an element before having checked that it should be written at all. But given that this behaviour changed, the need for overallocating is gone. Signed-off-by: Andreas Rheinhardt --- libavcodec/bitstream.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'libavcodec') diff --git a/libavcodec/bitstream.c b/libavcodec/bitstream.c index 2a796e0a3e..a908c10980 100644 --- a/libavcodec/bitstream.c +++ b/libavcodec/bitstream.c @@ -281,7 +281,7 @@ int ff_init_vlc_sparse(VLC *vlc_arg, int nb_bits, int nb_codes, vlc = vlc_arg; vlc->bits = nb_bits; if (flags & INIT_VLC_USE_NEW_STATIC) { - av_assert0(nb_codes + 1 <= FF_ARRAY_ELEMS(localbuf)); + av_assert0(nb_codes <= FF_ARRAY_ELEMS(localbuf)); localvlc = *vlc_arg; vlc = &localvlc; vlc->table_size = 0; @@ -290,8 +290,8 @@ int ff_init_vlc_sparse(VLC *vlc_arg, int nb_bits, int nb_codes, vlc->table_allocated = 0; vlc->table_size = 0; } - if (nb_codes + 1 > FF_ARRAY_ELEMS(localbuf)) { - buf = av_malloc_array((nb_codes + 1), sizeof(VLCcode)); + if (nb_codes > FF_ARRAY_ELEMS(localbuf)) { + buf = av_malloc_array(nb_codes, sizeof(VLCcode)); if (!buf) return AVERROR(ENOMEM); } else -- cgit v1.2.3