From 68f7e9cd8e29d0331f783844bb92d64d208aa861 Mon Sep 17 00:00:00 2001 From: Justin Ruggles Date: Mon, 10 Oct 2011 11:21:07 -0400 Subject: [PATCH] alacdec: simplify buffer allocation by using FF_ALLOC_OR_GOTO() --- libavcodec/alac.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/libavcodec/alac.c b/libavcodec/alac.c index 85a441a..4b44219 100644 --- a/libavcodec/alac.c +++ b/libavcodec/alac.c @@ -548,22 +548,21 @@ static int allocate_buffers(ALACContext *alac) { int ch; for (ch = 0; ch < alac->numchannels; ch++) { - alac->predicterror_buffer[ch] = - av_malloc(alac->setinfo_max_samples_per_frame * 4); + int buf_size = alac->setinfo_max_samples_per_frame * sizeof(int32_t); - alac->outputsamples_buffer[ch] = - av_malloc(alac->setinfo_max_samples_per_frame * 4); + FF_ALLOC_OR_GOTO(alac->avctx, alac->predicterror_buffer[ch], + buf_size, buf_alloc_fail); - alac->extra_bits_buffer[ch] = av_malloc(alac->setinfo_max_samples_per_frame * 4); + FF_ALLOC_OR_GOTO(alac->avctx, alac->outputsamples_buffer[ch], + buf_size, buf_alloc_fail); - if (!alac->predicterror_buffer[ch] || - !alac->outputsamples_buffer[ch] || - !alac->extra_bits_buffer[ch]) { - alac_decode_close(alac->avctx); - return AVERROR(ENOMEM); - } + FF_ALLOC_OR_GOTO(alac->avctx, alac->extra_bits_buffer[ch], + buf_size, buf_alloc_fail); } return 0; +buf_alloc_fail: + alac_decode_close(alac->avctx); + return AVERROR(ENOMEM); } static int alac_set_info(ALACContext *alac) -- 2.7.4