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. - 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".