changeset 205:0eadb99caf02

*** empty log message ***
author Karl Heuer <kwzh@gnu.org>
date Thu, 21 Apr 1994 19:45:27 +0000
parents 06c6a8b2ee89
children cb2cf1c28a4f
files regex.c
diffstat 1 files changed, 2 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/regex.c	Thu Apr 21 19:26:10 1994 +0000
+++ b/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.  */