Преглед изворни кода

fix bug incrementing past end in search

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@109716 91177308-0d34-0410-b5e6-96231b3b80d8
Howard Hinnant пре 15 година
родитељ
комит
8daa733576
1 измењених фајлова са 2 додато и 2 уклоњено
  1. 2 2
      include/regex

+ 2 - 2
include/regex

@@ -1883,7 +1883,7 @@ public:
     virtual string speak() const
     virtual string speak() const
     {
     {
         ostringstream os;
         ostringstream os;
-        if (__invert_)
+        if (!__invert_)
             os << "__word_boundary";
             os << "__word_boundary";
         else
         else
             os << "not __word_boundary";
             os << "not __word_boundary";
@@ -5404,7 +5404,7 @@ basic_regex<_CharT, _Traits>::__search(
         __m.__suffix_.matched = __m.__suffix_.first != __m.__suffix_.second;
         __m.__suffix_.matched = __m.__suffix_.first != __m.__suffix_.second;
         return true;
         return true;
     }
     }
-    if (!(__flags & regex_constants::match_continuous))
+    if (__first != __last && !(__flags & regex_constants::match_continuous))
     {
     {
         __m.__matches_.assign(__m.size(), __m.__unmatched_);
         __m.__matches_.assign(__m.size(), __m.__unmatched_);
         for (++__first; __first != __last; ++__first)
         for (++__first; __first != __last; ++__first)