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:
John Maddock
2005-11-30 13:56:54 +00:00
parent 9d76e95575
commit 2635121cc8
3 changed files with 4 additions and 3 deletions

View File

@ -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);

View File

@ -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);

View File

@ -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