# HG changeset patch # User Karl Heuer # Date 766957527 0 # Node ID 1857dd7c6f04ee40d40cde325ab4e6ce2844186a # Parent a8fe822b48dcfaa32977e824de45b6486ceed999 *** empty log message *** diff -r a8fe822b48dc -r 1857dd7c6f04 src/regex.c --- a/src/regex.c Thu Apr 21 19:26:10 1994 +0000 +++ b/src/regex.c Thu Apr 21 19:45:27 1994 +0000 @@ -1256,7 +1256,6 @@ We make the fail stack a global thing, and then grow it to re_max_failures when we compile. */ #ifndef MATCH_MAY_ALLOCATE -static int fail_stack_allocated; static fail_stack_type fail_stack; static const char ** regstart, ** regend; @@ -2493,9 +2492,9 @@ /* Since DOUBLE_FAIL_STACK refuses to double only if the current size is strictly greater than re_max_failures, the largest possible stack is 2 * re_max_failures failure points. */ - fail_stack.size = (2 * re_max_failures * MAX_FAILURE_ITEMS); - if (fail_stack.size > fail_stack_allocated) + if (fail_stack.size < (2 * re_max_failures * MAX_FAILURE_ITEMS)) { + fail_stack.size = (2 * re_max_failures * MAX_FAILURE_ITEMS); if (! fail_stack.stack) fail_stack.stack = (fail_stack_elt_t *) malloc (fail_stack.size @@ -2505,7 +2504,6 @@ (fail_stack_elt_t *) realloc (fail_stack.stack, (fail_stack.size * sizeof (fail_stack_elt_t))); - fail_stack_allocated = fail_stack.size; } /* Initialize some other variables the matcher uses. */