forked from boostorg/regex
Stop calling std::list<>::size(), it's not O(1).
Suppress MSVC warning. Fix error code for bad repeat range. [SVN r31833]
This commit is contained in:
@ -83,7 +83,7 @@ template <class Key, class Object>
|
|||||||
boost::shared_ptr<Object> object_cache<Key, Object>::do_get(const Key& k, size_type max_cache_size)
|
boost::shared_ptr<Object> object_cache<Key, Object>::do_get(const Key& k, size_type max_cache_size)
|
||||||
{
|
{
|
||||||
typedef typename object_cache<Key, Object>::data object_data;
|
typedef typename object_cache<Key, Object>::data object_data;
|
||||||
typedef typename list_type::size_type list_size_type;
|
typedef typename map_type::size_type map_size_type;
|
||||||
static object_data s_data;
|
static object_data s_data;
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -122,7 +122,7 @@ boost::shared_ptr<Object> object_cache<Key, Object>::do_get(const Key& k, size_t
|
|||||||
s_data.cont.push_back(value_type(result, 0));
|
s_data.cont.push_back(value_type(result, 0));
|
||||||
s_data.index.insert(std::make_pair(k, --(s_data.cont.end())));
|
s_data.index.insert(std::make_pair(k, --(s_data.cont.end())));
|
||||||
s_data.cont.back().second = &(s_data.index.find(k)->first);
|
s_data.cont.back().second = &(s_data.index.find(k)->first);
|
||||||
list_size_type s = s_data.cont.size();
|
map_size_type s = s_data.index.size();
|
||||||
BOOST_ASSERT(s_data.index[k]->first.get() == result.get());
|
BOOST_ASSERT(s_data.index[k]->first.get() == result.get());
|
||||||
BOOST_ASSERT(&(s_data.index.find(k)->first) == s_data.cont.back().second);
|
BOOST_ASSERT(&(s_data.index.find(k)->first) == s_data.cont.back().second);
|
||||||
BOOST_ASSERT(s_data.index.find(k)->first == k);
|
BOOST_ASSERT(s_data.index.find(k)->first == k);
|
||||||
|
@ -889,7 +889,7 @@ bool basic_regex_parser<charT, traits>::parse_repeat_range(bool isbasic)
|
|||||||
//
|
//
|
||||||
if(min > max)
|
if(min > max)
|
||||||
{
|
{
|
||||||
fail(regex_constants::error_range, this->m_position - this->m_base);
|
fail(regex_constants::error_badbrace, this->m_position - this->m_base);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return parse_repeat(min, max);
|
return parse_repeat(min, max);
|
||||||
|
@ -494,6 +494,7 @@ bool perl_matcher<BidiIterator, Allocator, traits>::match_char_repeat()
|
|||||||
#ifdef BOOST_MSVC
|
#ifdef BOOST_MSVC
|
||||||
#pragma warning(push)
|
#pragma warning(push)
|
||||||
#pragma warning(disable:4127)
|
#pragma warning(disable:4127)
|
||||||
|
#pragma warning(disable:4267)
|
||||||
#endif
|
#endif
|
||||||
#ifdef __BORLANDC__
|
#ifdef __BORLANDC__
|
||||||
#pragma option push -w-8008 -w-8066 -w-8004
|
#pragma option push -w-8008 -w-8066 -w-8004
|
||||||
|
Reference in New Issue
Block a user