# HG changeset patch # User rathann # Date 1381092883 0 # Node ID 1c7c804e9c82fb62f5d6f0c3d33a832e2d8e29da # Parent 9ec21bb5556e4fbfbc8eacedfc75adeba5a8584c 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. diff -r 9ec21bb5556e -r 1c7c804e9c82 vm/vm.c --- 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);