On Thu, Apr 30, 2020 at 03:18:15PM +0200, Andreas Rheinhardt wrote: > lance.lmw...@gmail.com: > > From: Limin Wang <lance.lmw...@gmail.com> > > > > Signed-off-by: Limin Wang <lance.lmw...@gmail.com> > > --- > > libavcodec/utils.c | 29 +++-------------------------- > > 1 file changed, 3 insertions(+), 26 deletions(-) > > > > diff --git a/libavcodec/utils.c b/libavcodec/utils.c > > index e77090daef..91b271a717 100644 > > --- a/libavcodec/utils.c > > +++ b/libavcodec/utils.c > > @@ -584,37 +584,14 @@ int attribute_align_arg avcodec_open2(AVCodecContext > > *avctx, const AVCodec *code > > avctx->internal = avci; > > > > avci->to_free = av_frame_alloc(); > > - if (!avci->to_free) { > > - ret = AVERROR(ENOMEM); > > - goto free_and_end; > > - } > > - > > avci->compat_decode_frame = av_frame_alloc(); > > - if (!avci->compat_decode_frame) { > > - ret = AVERROR(ENOMEM); > > - goto free_and_end; > > - } > > - > > avci->buffer_frame = av_frame_alloc(); > > - if (!avci->buffer_frame) { > > - ret = AVERROR(ENOMEM); > > - goto free_and_end; > > - } > > - > > avci->buffer_pkt = av_packet_alloc(); > > - if (!avci->buffer_pkt) { > > - ret = AVERROR(ENOMEM); > > - goto free_and_end; > > - } > > - > > avci->ds.in_pkt = av_packet_alloc(); > > - if (!avci->ds.in_pkt) { > > - ret = AVERROR(ENOMEM); > > - goto free_and_end; > > - } > > - > > avci->last_pkt_props = av_packet_alloc(); > > - if (!avci->last_pkt_props) { > > + if (!avci->to_free || !avci->compat_decode_frame || > > + !avci->buffer_frame || !avci->buffer_pkt || > > + !avci->ds.in_pkt || !avci->last_pkt_props) { > > ret = AVERROR(ENOMEM); > > goto free_and_end; > > } > > > If you write this in the following way > > if (!(avci->to_free = av_frame_alloc()) || > !(avci->compat_decode_frame = av_frame_alloc()) || ...) { > ret = AVERROR(ENOMEM); > goto free_and_end; > } > > then shortcircuit evaluation will make sure that an error is detected > immediately (like now), but without the code duplication.
Yeah, it's better, I'll update it. > > - Andreas > _______________________________________________ > 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". -- Thanks, Limin Wang _______________________________________________ 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".