From 8d76f35c643b15ce7fd7fe2be24a53d55fc1dcd1 Mon Sep 17 00:00:00 2001 From: John Maddock Date: Mon, 3 May 2004 11:31:15 +0000 Subject: [PATCH] Patched for problem with wide character optimisations. [SVN r22724] --- .../boost/regex/v4/perl_matcher_common.hpp | 2 +- .../regex/v4/perl_matcher_non_recursive.hpp | 20 +++++++++---------- include/boost/regex/v4/regex_compile.hpp | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/include/boost/regex/v4/perl_matcher_common.hpp b/include/boost/regex/v4/perl_matcher_common.hpp index d8f030b4..0f6b1ade 100644 --- a/include/boost/regex/v4/perl_matcher_common.hpp +++ b/include/boost/regex/v4/perl_matcher_common.hpp @@ -82,7 +82,7 @@ void perl_matcher::estimate_max_sta if(dist > (difference_type)(lim / states)) max_state_count = lim; else - max_state_count = 1000 + states * dist; + max_state_count = 100000 + states * dist; } template void perl_matcher::estimate_max_state_count(void*) diff --git a/include/boost/regex/v4/perl_matcher_non_recursive.hpp b/include/boost/regex/v4/perl_matcher_non_recursive.hpp index 0f231a27..bff283a2 100644 --- a/include/boost/regex/v4/perl_matcher_non_recursive.hpp +++ b/include/boost/regex/v4/perl_matcher_non_recursive.hpp @@ -927,8 +927,8 @@ bool perl_matcher::unwind_greedy_si const re_repeat* rep = pmp->rep; unsigned count = pmp->count; - assert(rep->next.p); - assert(rep->alt.p); + assert(rep->next.p != 0); + assert(rep->alt.p != 0); count -= rep->min; @@ -977,8 +977,8 @@ bool perl_matcher::unwind_slow_dot_ const re_repeat* rep = pmp->rep; unsigned count = pmp->count; assert(rep->type == syntax_element_dot_rep); - assert(rep->next.p); - assert(rep->alt.p); + assert(rep->next.p != 0); + assert(rep->alt.p != 0); assert(rep->next.p->type == syntax_element_wild); assert(count < rep->max); @@ -1095,8 +1095,8 @@ bool perl_matcher::unwind_char_repe position = pmp->last_position; assert(rep->type == syntax_element_char_rep); - assert(rep->next.p); - assert(rep->alt.p); + assert(rep->next.p != 0); + assert(rep->alt.p != 0); assert(rep->next.p->type == syntax_element_literal); assert(count < rep->max); @@ -1159,8 +1159,8 @@ bool perl_matcher::unwind_short_set position = pmp->last_position; assert(rep->type == syntax_element_short_set_rep); - assert(rep->next.p); - assert(rep->alt.p); + assert(rep->next.p != 0); + assert(rep->alt.p != 0); assert(rep->next.p->type == syntax_element_set); assert(count < rep->max); @@ -1223,8 +1223,8 @@ bool perl_matcher::unwind_long_set_ position = pmp->last_position; assert(rep->type == syntax_element_long_set_rep); - assert(rep->next.p); - assert(rep->alt.p); + assert(rep->next.p != 0); + assert(rep->alt.p != 0); assert(rep->next.p->type == syntax_element_long_set); assert(position != last); assert(count < rep->max); diff --git a/include/boost/regex/v4/regex_compile.hpp b/include/boost/regex/v4/regex_compile.hpp index 25fb41b8..d6e88029 100644 --- a/include/boost/regex/v4/regex_compile.hpp +++ b/include/boost/regex/v4/regex_compile.hpp @@ -1066,7 +1066,7 @@ re_detail::re_syntax_base* BOOST_REGEX_CALL reg_expression sizeof(charT)) + if(len > sizeof(charT) * 2) singleton = false; std::memcpy(reinterpret_cast(data.extend(len)), s.c_str(), len); singles.pop();