Ulrich Drepper ee70274a21 Update.
2003-11-19  Jakub Jelinek  <jakub@redhat.com>

	* posix/regexec.c (extend_buffers): Don't allocate
	twice as big state_log as needed.  Don't modify pstr->valid_len
	for mb_cur_max == 1 !icase !trans.

	* posix/regcomp.c (free_bin_tree): Removed.
	(create_tree): Add dfa argument.  Don't call re_malloc for
	each tree, instead allocate from str_tree_storage.
	(re_dfa_add_tree_node): New function.
	(free_dfa_content): Handle freeing if dfa->nodes == NULL
	or dfa->state_table == NULL.
	(re_compile_internal): Call free_dfa_content if init_dfa
	fails.  Call free_workarea_compile, re_string_destruct
	and free_dfa_content for most of the other failure paths.
	(init_dfa): Initialize str_tree_storage_idx.
	Don't clear any fields on allocation failure.
	(free_workarea_compile): Free str_tree_storage chunks
	instead of free_bin_tree (dfa->str_tree).
	(parse): Call re_dfa_add_tree_node instead of re_dfa_add_node
	followed by create_tree.  Add dfa argument to remaining
	create_tree calls.  Remove new_idx variable.  Remove calls
	to free_bin_tree.
	(parse_reg_exp, parse_branch, parse_expression, parse_sub_exp,
	parse_dup_op, parse_bracket_exp, build_charclass_op): Likewise.
	(duplicate_tree): Remove calls to free_bin_tree, add dfa
	argument to create_tree.
	* posix/regex_internal.h (BIN_TREE_STORAGE_SIZE): Define.
	(bin_tree_storage_t): New type.
	(re_dfa_t): Add str_tree_storage and str_tree_storage_idx
	fields.
	* posix/Makefile (tests): Add bug-regex21.
	(generated): Add bug-regex21-mem, bug-regex21.mtrace,
	tst-rxspencer-mem and tst-rxspencer.mtrace.
	(tests): Depend on $(objpfx)bug-regex21-mem
	and $(objpfx)tst-rxspencer-mem.
	(bug-regex21-ENV, tst-rxspencer-ENV): Set.
	($(objpfx)bug-regex21-mem, $(objpfx)tst-rxspencer-mem): New.
	* posix/tst-rxspencer.c (main): Add call to mtrace.
	Free line at the end.
	* posix/bug-regex21.c: New test.

	* posix/regexec.c (get_subexp): After calling get_subexp_sub
2003-11-19 19:37:31 +00:00
..
2003-11-13 23:39:31 +00:00
2003-04-19 16:57:17 +00:00
2002-12-06 21:28:23 +00:00
2002-08-03 07:02:10 +00:00
2001-02-07 07:25:37 +00:00
2001-07-06 04:58:11 +00:00
2001-07-06 04:58:11 +00:00
2002-07-27 08:28:46 +00:00
2002-07-27 08:28:46 +00:00
2002-07-27 08:28:46 +00:00
2002-08-12 19:50:26 +00:00
2002-08-26 23:00:40 +00:00
2003-10-07 18:50:07 +00:00
2003-10-02 22:41:11 +00:00
2003-01-16 19:20:36 +00:00
2003-11-12 07:56:31 +00:00
2003-11-12 06:13:10 +00:00
2003-11-12 17:47:46 +00:00
2003-11-19 09:24:54 +00:00
2003-11-19 19:37:31 +00:00
2001-07-06 04:58:11 +00:00
2001-07-06 04:58:11 +00:00
2003-06-13 21:05:42 +00:00
2003-11-18 19:12:03 +00:00
2001-07-06 04:58:11 +00:00
2003-06-02 22:44:59 +00:00
2001-08-11 19:43:52 +00:00
2003-09-12 22:37:19 +00:00
2003-09-12 22:37:19 +00:00
2001-07-06 04:58:11 +00:00
2001-07-06 04:58:11 +00:00
2003-10-27 01:36:12 +00:00
2003-11-19 19:37:31 +00:00
2003-11-13 01:04:26 +00:00
2003-11-13 01:04:26 +00:00
2003-11-13 01:04:26 +00:00
2001-07-06 04:58:11 +00:00
2003-11-19 19:37:31 +00:00
2003-11-19 09:09:27 +00:00
2003-11-19 19:37:31 +00:00
2003-11-16 07:14:28 +00:00
2003-11-13 06:01:46 +00:00
1999-08-30 19:23:15 +00:00
2003-11-19 19:37:31 +00:00
2003-11-13 01:04:26 +00:00
2003-11-13 20:04:16 +00:00
2003-05-10 07:48:16 +00:00
2001-07-06 04:58:11 +00:00
2001-07-06 04:58:11 +00:00
2001-07-06 04:58:11 +00:00
2001-07-06 04:58:11 +00:00
2001-07-06 04:58:11 +00:00
2000-04-15 16:51:16 +00:00
2001-07-06 04:58:11 +00:00
2003-04-19 16:57:17 +00:00
2001-07-06 04:58:11 +00:00
2001-07-06 04:58:11 +00:00
2001-07-06 04:58:11 +00:00
2001-07-06 04:58:11 +00:00
2001-07-06 04:58:11 +00:00
2001-07-06 04:58:11 +00:00
2001-07-06 04:58:11 +00:00
2001-07-06 04:58:11 +00:00
2001-07-06 04:58:11 +00:00
2001-07-06 04:58:11 +00:00
2001-07-06 04:58:11 +00:00
2001-07-06 04:58:11 +00:00
2001-07-06 04:58:11 +00:00
2001-07-06 04:58:11 +00:00
2000-01-18 10:53:15 +00:00
2001-03-15 09:36:19 +00:00
2000-01-18 10:53:15 +00:00
2001-07-06 04:58:11 +00:00
2001-07-06 04:58:11 +00:00
2001-07-06 04:58:11 +00:00
2001-10-27 03:00:50 +00:00
2001-07-06 04:58:11 +00:00
2001-07-06 04:58:11 +00:00
2002-09-30 07:47:16 +00:00
2001-07-06 04:58:11 +00:00
2001-07-06 04:58:11 +00:00
2003-11-12 17:47:46 +00:00
2001-07-06 04:58:11 +00:00
2003-11-19 19:37:31 +00:00
2001-07-06 04:58:11 +00:00
2001-07-06 04:58:11 +00:00
2001-07-06 04:58:11 +00:00
2000-09-06 18:07:07 +00:00
2003-09-04 16:19:05 +00:00
2003-09-17 00:49:19 +00:00
1996-11-27 06:13:15 +00:00
2003-09-18 02:54:32 +00:00
2000-10-21 00:02:39 +00:00