Update.
authorUlrich Drepper <drepper@redhat.com>
Fri, 10 Dec 2004 04:37:58 +0000 (04:37 +0000)
committerUlrich Drepper <drepper@redhat.com>
Fri, 10 Dec 2004 04:37:58 +0000 (04:37 +0000)
commit5cf1ec52565b19d68c3c0fbd853c0b5de26b27b2
treec93f9b9778da05c5d67f29870f1e263963e64ef5
parentdc165f7b0bfa73ebd64584331d0cb7c2ead66147
Update.

2004-12-07  Paolo Bonzini  <bonzini@gnu.org>

* posix/regexec.c (proceed_next_node): Simplify treatment of epsilon
nodes.  Pass the pushed node to push_fail_stack.
(push_fail_stack): Accept a single node rather than an array
of two epsilon destinations.
(build_sifted_states): Only walk non-epsilon nodes.
(check_arrival): Don't pass epsilon nodes to
check_arrival_add_next_nodes.
(check_arrival_add_next_nodes) [DEBUG]: Abort if an epsilon node is
found.
(check_node_accept): Do expensive checks later.
(add_epsilon_src_nodes): Cache result of merging the inveclosures.
* posix/regex_internal.h (re_dfastate_t): Add non_eps_nodes and
inveclosure.
(re_string_elem_size_at, re_string_char_size_at, re_string_wchar_at,
re_string_context_at, re_string_peek_byte_case,
re_string_fetch_byte_case, re_node_set_compare, re_node_set_contains):
Declare as pure.
* posix/regex_internal.c (create_newstate_common): Remove.
(register_state): Move part of it here.  Initialize non_eps_nodes.
(free_state): Free inveclosure and non_eps_nodes.
(create_cd_newstate, create_ci_newstate): Allocate the new
re_dfastate_t here.
ChangeLog
posix/regex_internal.c
posix/regex_internal.h
posix/regexec.c