On Thu, 14 Apr 2016 13:06:46 -0400 Vittorio Giovara <[email protected]> wrote:
> On Thu, Apr 14, 2016 at 6:47 AM, wm4 <[email protected]> wrote: > > On Thu, 14 Apr 2016 12:40:22 +0200 > > Diego Biurrun <[email protected]> wrote: > > > >> On Thu, Apr 14, 2016 at 12:21:17PM +0200, wm4 wrote: > >> > --- a/libavcodec/mmaldec.c > >> > +++ b/libavcodec/mmaldec.c > >> > @@ -166,7 +166,7 @@ static void ffmmal_stop_decoder(AVCodecContext > >> > *avctx) > >> > > >> > - assert(avpriv_atomic_get(&ctx->packets_buffered) == 0); > >> > + av_assert0(avpriv_atomic_get(&ctx->packets_buffered) == 0); > >> > >> .. because .. ? > > > > Because we use av_assert0() instead of assert() everywhere. Apparently > > the latter is normally disabled. The code wasn't even valid and never > > actually compiled, and I never noticed it myself. (michaelni didn't > > notice this either, so this patch broke compilation. It was fixed with > > patch 2/11, which I kept separate for authorship information.) > > Shouldn't it just return an error and fail gracefully? It can't fail gracefully at this point because everything is fucked beyond repair. This is the classic use for an assert: it detects some sort of logic error, and fails early instead of running into even more undefined behavior that makes locating the crash harder. _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
