Finally fixed non-recursive algorithm - should now be fully usable, and is now emabled by default on non-win32 platforms.

Fixed a couple of buglets in the regex comparison benchmarks.


[SVN r18191]
This commit is contained in:
John Maddock
2003-04-06 10:43:01 +00:00
parent 180c7d64a2
commit 125c0f99fb
3 changed files with 5 additions and 9 deletions

View File

@ -438,12 +438,6 @@ void raise_error(const traits& t, unsigned code)
*
****************************************************************************/
#ifndef BOOST_REGEX_NON_RECURSIVE
// non-recursive mode is currently too fragile to
// auto-select, this will be removed before release:
# define BOOST_REGEX_RECURSIVE
#endif
#if !defined(BOOST_REGEX_RECURSIVE) && !defined(BOOST_REGEX_NON_RECURSIVE)
# ifdef BOOST_REGEX_HAS_MS_STACK_GUARD
# define BOOST_REGEX_RECURSIVE

View File

@ -80,6 +80,7 @@ struct mem_block_cache
mem_block_node* old = static_cast<mem_block_node*>(p);
old->next = next;
next = old;
++cached_blocks;
}
}
};

View File

@ -57,7 +57,8 @@ struct results
std::string expression;
std::string description;
results(const std::string& ex, const std::string& desc)
: boost_time(-1),
: boost_time(-1),
localised_boost_time(-1),
greta_time(-1),
safe_greta_time(-1),
posix_time(-1),
@ -70,6 +71,8 @@ struct results
{
if((boost_time >= 0) && (boost_time < factor))
factor = boost_time;
if((localised_boost_time >= 0) && (localised_boost_time < factor))
factor = localised_boost_time;
if((greta_time >= 0) && (greta_time < factor))
factor = greta_time;
if((safe_greta_time >= 0) && (safe_greta_time < factor))
@ -78,8 +81,6 @@ struct results
factor = posix_time;
if((pcre_time >= 0) && (pcre_time < factor))
factor = pcre_time;
if((factor >= 0) && (factor < factor))
factor = factor;
}
};