about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog17
-rw-r--r--posix/regex_internal.c7
2 files changed, 18 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 731a2d2ed8..da1eb4fd16 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2003-12-14  Paolo Bonzini  <bonzini@gnu.org>
+
+	* posix/regex_internal.c (re_acquire_state_context):
+        Compare the node sets after all the other comparisons.
+
+2003-12-13  Paolo Bonzini  <bonzini@gnu.org>
+
+	* posix/regexec.c (find_subexp_node, check_arrival,
+	check_arrival_add_next_nodes, check_arrival_expand_ecl,
+	check_arrival_expand_ecl_sub, expand_bkref_cache):
+	Rename the FL_OPEN parameter to TYPE, which is either
+	OP_OPEN_SUBEXP or OP_CLOSE_SUBEXP.  Callers adjusted.
+
 2003-12-12  Andreas Jaeger  <aj@suse.de>
 
 	* sysdeps/unix/sysv/linux/x86_64/syscall.S: Pass also 6th argument
@@ -40,10 +53,10 @@
 	* configure.in: Check whether compiler has libunwind support.
 	* config.make.in (have-cc-with-libunwind): New variable.
 	* config.h.in (HAVE_CC_WITH_LIBUNWIND): New macro.
-	* Makeconfig (gnulib): If have-cc-withh-libunwind is "yes", also
+	* Makeconfig (gnulib): If have-cc-with-libunwind is "yes", also
 	mention -lunwind.
 
-003-11-12  David Mosberger  <davidm@hpl.hp.com>
+2003-11-12  David Mosberger  <davidm@hpl.hp.com>
 
 	* sysdeps/unix/sysv/linux/ia64/sysdep.h: Define DO_CALL_VIA_BREAK.
 	Redefine DO_CALL to use vdso if supported, otherwise DO_CALL_VIA_BREAK.
diff --git a/posix/regex_internal.c b/posix/regex_internal.c
index 1fd3e164ef..b9b2d3a27b 100644
--- a/posix/regex_internal.c
+++ b/posix/regex_internal.c
@@ -1398,10 +1398,9 @@ re_acquire_state_context (err, dfa, nodes, context)
   for (i = 0 ; i < spot->num ; i++)
     {
       re_dfastate_t *state = spot->array[i];
-      if (hash != state->hash)
-	continue;
-      if (re_node_set_compare (state->entrance_nodes, nodes)
-	  && state->context == context)
+      if (state->hash == hash
+	  && state->context == context
+	  && re_node_set_compare (state->entrance_nodes, nodes))
 	return state;
     }
   /* There are no appropriate state in `dfa', create the new one.  */