Fixing an oversite in my first fix (7891051).
BUG=81753
TEST=unit_tests
Review URL: http://codereview.chromium.org/7886048
git-svn-id: http://src.chromium.org/svn/trunk/deps/third_party/icu46@101184 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
diff --git a/patches/rematch.patch b/patches/rematch.patch
index d8fb961..e1860d6 100644
--- a/patches/rematch.patch
+++ b/patches/rematch.patch
@@ -10,7 +10,7 @@
#ifdef REGEX_SMART_BACKTRACKING
int32_t originalInputIdx = fp->fInputIdx;
-@@ -5607,23 +5608,29 @@
+@@ -5607,23 +5608,31 @@
foldOffset = foldLength = 0;
while (patternChars < patternEnd && success) {
@@ -46,6 +46,8 @@
+ }
}
}
++ } else {
++ c_is_valid = FALSE;
}
- if (fp->fInputIdx <= fActiveLimit) {
@@ -53,7 +55,7 @@
if (U_IS_BMP(c)) {
success = (*patternChars == c);
patternChars += 1;
-@@ -6070,4 +6077,3 @@
+@@ -6070,4 +6079,3 @@
U_NAMESPACE_END
#endif // !UCONFIG_NO_REGULAR_EXPRESSIONS
diff --git a/source/i18n/rematch.cpp b/source/i18n/rematch.cpp
index f365bd9..ea9107c 100644
--- a/source/i18n/rematch.cpp
+++ b/source/i18n/rematch.cpp
@@ -5628,6 +5628,8 @@
}
}
}
+ } else {
+ c_is_valid = FALSE;
}
if (fp->fInputIdx <= fActiveLimit && c_is_valid) {