Mercurial > libdvdnav.hg
changeset 433:1c7c804e9c82 src
Prevent general CPP macro from causing strange behavior.
Roger Pack reported that when playing the DVD "Tangled"
w/ mplayer and recent libdvdnav, mplayer crashes w/ the error message:
Assertion failed: (vm->state).pgc->cell_playback[(vm->state).cellN - 1].block_mode != 0, file libdvdnav/vm/vm.c, line 1141
This line should only be triggered when a developer wants a "strict"
build of the library. Most likely using the very general term
STRICT to #ifdef this clause is what is causing this issue. This
patch adds a DVDNAV_ in front of the strict to prevent the
macro from being enabled accidentally.
Patch by Erik Hovland.
author | rathann |
---|---|
date | Sun, 06 Oct 2013 20:54:43 +0000 |
parents | 9ec21bb5556e |
children | 264c5b900bfb |
files | vm/vm.c |
diffstat | 1 files changed, 2 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/vm/vm.c Sun Oct 06 20:47:20 2013 +0000 +++ b/vm/vm.c Sun Oct 06 20:54:43 2013 +0000 @@ -59,7 +59,7 @@ #endif /* -#define STRICT +#define DVDNAV_STRICT */ /* Local prototypes */ @@ -1128,7 +1128,7 @@ case 1: /* Angle block */ /* Loop and check each cell instead? So we don't get outside the block? */ (vm->state).cellN += (vm->state).AGL_REG - 1; -#ifdef STRICT +#ifdef DVDNAV_STRICT assert((vm->state).cellN <= (vm->state).pgc->nr_of_cells); assert((vm->state).pgc->cell_playback[(vm->state).cellN - 1].block_mode != 0); assert((vm->state).pgc->cell_playback[(vm->state).cellN - 1].block_type == 1);