Patched for problem with wide character optimisations.

[SVN r22724]
This commit is contained in:
John Maddock
2004-05-03 11:31:15 +00:00
parent 92bf09979a
commit 8d76f35c64
3 changed files with 12 additions and 12 deletions

View File

@ -82,7 +82,7 @@ void perl_matcher<BidiIterator, Allocator, traits, Allocator2>::estimate_max_sta
if(dist > (difference_type)(lim / states)) if(dist > (difference_type)(lim / states))
max_state_count = lim; max_state_count = lim;
else else
max_state_count = 1000 + states * dist; max_state_count = 100000 + states * dist;
} }
template <class BidiIterator, class Allocator, class traits, class Allocator2> template <class BidiIterator, class Allocator, class traits, class Allocator2>
void perl_matcher<BidiIterator, Allocator, traits, Allocator2>::estimate_max_state_count(void*) void perl_matcher<BidiIterator, Allocator, traits, Allocator2>::estimate_max_state_count(void*)

View File

@ -927,8 +927,8 @@ bool perl_matcher<BidiIterator, Allocator, traits, Allocator2>::unwind_greedy_si
const re_repeat* rep = pmp->rep; const re_repeat* rep = pmp->rep;
unsigned count = pmp->count; unsigned count = pmp->count;
assert(rep->next.p); assert(rep->next.p != 0);
assert(rep->alt.p); assert(rep->alt.p != 0);
count -= rep->min; count -= rep->min;
@ -977,8 +977,8 @@ bool perl_matcher<BidiIterator, Allocator, traits, Allocator2>::unwind_slow_dot_
const re_repeat* rep = pmp->rep; const re_repeat* rep = pmp->rep;
unsigned count = pmp->count; unsigned count = pmp->count;
assert(rep->type == syntax_element_dot_rep); assert(rep->type == syntax_element_dot_rep);
assert(rep->next.p); assert(rep->next.p != 0);
assert(rep->alt.p); assert(rep->alt.p != 0);
assert(rep->next.p->type == syntax_element_wild); assert(rep->next.p->type == syntax_element_wild);
assert(count < rep->max); assert(count < rep->max);
@ -1095,8 +1095,8 @@ bool perl_matcher<BidiIterator, Allocator, traits, Allocator2>::unwind_char_repe
position = pmp->last_position; position = pmp->last_position;
assert(rep->type == syntax_element_char_rep); assert(rep->type == syntax_element_char_rep);
assert(rep->next.p); assert(rep->next.p != 0);
assert(rep->alt.p); assert(rep->alt.p != 0);
assert(rep->next.p->type == syntax_element_literal); assert(rep->next.p->type == syntax_element_literal);
assert(count < rep->max); assert(count < rep->max);
@ -1159,8 +1159,8 @@ bool perl_matcher<BidiIterator, Allocator, traits, Allocator2>::unwind_short_set
position = pmp->last_position; position = pmp->last_position;
assert(rep->type == syntax_element_short_set_rep); assert(rep->type == syntax_element_short_set_rep);
assert(rep->next.p); assert(rep->next.p != 0);
assert(rep->alt.p); assert(rep->alt.p != 0);
assert(rep->next.p->type == syntax_element_set); assert(rep->next.p->type == syntax_element_set);
assert(count < rep->max); assert(count < rep->max);
@ -1223,8 +1223,8 @@ bool perl_matcher<BidiIterator, Allocator, traits, Allocator2>::unwind_long_set_
position = pmp->last_position; position = pmp->last_position;
assert(rep->type == syntax_element_long_set_rep); assert(rep->type == syntax_element_long_set_rep);
assert(rep->next.p); assert(rep->next.p != 0);
assert(rep->alt.p); assert(rep->alt.p != 0);
assert(rep->next.p->type == syntax_element_long_set); assert(rep->next.p->type == syntax_element_long_set);
assert(position != last); assert(position != last);
assert(count < rep->max); assert(count < rep->max);

View File

@ -1066,7 +1066,7 @@ re_detail::re_syntax_base* BOOST_REGEX_CALL reg_expression<charT, traits, Alloca
++csingles; ++csingles;
const traits_string_type& s = singles.peek(); const traits_string_type& s = singles.peek();
std::size_t len = (s.size() + 1) * sizeof(charT); std::size_t len = (s.size() + 1) * sizeof(charT);
if(len > sizeof(charT)) if(len > sizeof(charT) * 2)
singleton = false; singleton = false;
std::memcpy(reinterpret_cast<charT*>(data.extend(len)), s.c_str(), len); std::memcpy(reinterpret_cast<charT*>(data.extend(len)), s.c_str(), len);
singles.pop(); singles.pop();