ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinha...@outlook.com> | Mon Jul 11 19:57:07 2022 +0200| [46b586e5b262052f09dfd22d06356c875203c245] | committer: Andreas Rheinhardt
avcodec/iff: Avoid redundant frees This code is only called once during init, so none of the buffers here have been allocated already. Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@outlook.com> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=46b586e5b262052f09dfd22d06356c875203c245 --- libavcodec/iff.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/libavcodec/iff.c b/libavcodec/iff.c index d7eca289ee..d596ad4ba4 100644 --- a/libavcodec/iff.c +++ b/libavcodec/iff.c @@ -245,8 +245,6 @@ static int extract_header(AVCodecContext *const avctx) if (s->masking == MASK_HAS_MASK) { if (s->bpp >= 8 && !s->ham) { avctx->pix_fmt = AV_PIX_FMT_RGB32; - av_freep(&s->mask_buf); - av_freep(&s->mask_palbuf); if (s->bpp > 16) { av_log(avctx, AV_LOG_ERROR, "bpp %d too large for palette\n", s->bpp); return AVERROR(ENOMEM); @@ -255,10 +253,8 @@ static int extract_header(AVCodecContext *const avctx) if (!s->mask_buf) return AVERROR(ENOMEM); s->mask_palbuf = av_malloc((2 << s->bpp) * sizeof(uint32_t) + AV_INPUT_BUFFER_PADDING_SIZE); - if (!s->mask_palbuf) { - av_freep(&s->mask_buf); + if (!s->mask_palbuf) return AVERROR(ENOMEM); - } } s->bpp++; } else if (s->masking != MASK_NONE && s->masking != MASK_HAS_TRANSPARENT_COLOR) { @@ -272,9 +268,6 @@ static int extract_header(AVCodecContext *const avctx) if (s->video_size && s->planesize * s->bpp * avctx->height > s->video_size) return AVERROR_INVALIDDATA; - av_freep(&s->ham_buf); - av_freep(&s->ham_palbuf); - if (s->ham) { int i, count = FFMIN(palette_size / 3, 1 << s->ham); int ham_count; @@ -290,10 +283,8 @@ static int extract_header(AVCodecContext *const avctx) ham_count = 8 * (1 << s->ham); s->ham_palbuf = av_malloc(extra_space * (ham_count << !!(s->masking == MASK_HAS_MASK)) * sizeof (uint32_t) + AV_INPUT_BUFFER_PADDING_SIZE); - if (!s->ham_palbuf) { - av_freep(&s->ham_buf); + if (!s->ham_palbuf) return AVERROR(ENOMEM); - } if (count) { // HAM with color palette attached // prefill with black and palette and set HAM take direct value mask to zero _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog To unsubscribe, visit link above, or email ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".