Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(460)

Side by Side Diff: source/i18n/regexcmp.cpp

Issue 877193003: ICU update to 54.1 step 7 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/icu.git@master
Patch Set: add one more msvc's warning fix Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « source/i18n/digitlst.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // 1 //
2 // file: regexcmp.cpp 2 // file: regexcmp.cpp
3 // 3 //
4 // Copyright (C) 2002-2014 International Business Machines Corporation and othe rs. 4 // Copyright (C) 2002-2014 International Business Machines Corporation and othe rs.
5 // All Rights Reserved. 5 // All Rights Reserved.
6 // 6 //
7 // This file contains the ICU regular expression compiler, which is responsible 7 // This file contains the ICU regular expression compiler, which is responsible
8 // for processing a regular expression pattern into the compiled form that 8 // for processing a regular expression pattern into the compiled form that
9 // is used by the match finding engine. 9 // is used by the match finding engine.
10 // 10 //
(...skipping 3453 matching lines...) Expand 10 before | Expand all | Expand 10 after
3464 // then multiply the result by the maximum loop count. 3464 // then multiply the result by the maximum loop count.
3465 { 3465 {
3466 int32_t loopEndLoc = URX_VAL(fRXPat->fCompiledPat->elementAti(l oc+1)); 3466 int32_t loopEndLoc = URX_VAL(fRXPat->fCompiledPat->elementAti(l oc+1));
3467 if (loopEndLoc == loc+4) { 3467 if (loopEndLoc == loc+4) {
3468 // Loop has an empty body. No affect on max match length. 3468 // Loop has an empty body. No affect on max match length.
3469 // Continue processing with code after the loop end. 3469 // Continue processing with code after the loop end.
3470 loc = loopEndLoc; 3470 loc = loopEndLoc;
3471 break; 3471 break;
3472 } 3472 }
3473 3473
3474 int32_t maxLoopCount = fRXPat->fCompiledPat->elementAti(loc+3); 3474 int32_t maxLoopCount = static_cast<int32_t>(fRXPat->fCompiledPat ->elementAti(loc+3));
3475 if (maxLoopCount == -1) { 3475 if (maxLoopCount == -1) {
3476 // Unbounded Loop. No upper bound on match length. 3476 // Unbounded Loop. No upper bound on match length.
3477 currentLen = INT32_MAX; 3477 currentLen = INT32_MAX;
3478 break; 3478 break;
3479 } 3479 }
3480 3480
3481 U_ASSERT(loopEndLoc >= loc+4); 3481 U_ASSERT(loopEndLoc >= loc+4);
3482 int32_t blockLen = maxMatchLength(loc+4, loopEndLoc-1); // Rec ursive call. 3482 int32_t blockLen = maxMatchLength(loc+4, loopEndLoc-1); // Rec ursive call.
3483 if (blockLen == INT32_MAX) { 3483 if (blockLen == INT32_MAX) {
3484 currentLen = blockLen; 3484 currentLen = blockLen;
(...skipping 964 matching lines...) Expand 10 before | Expand all | Expand 10 after
4449 4449
4450 void RegexCompile::setPushOp(int32_t op) { 4450 void RegexCompile::setPushOp(int32_t op) {
4451 setEval(op); 4451 setEval(op);
4452 fSetOpStack.push(op, *fStatus); 4452 fSetOpStack.push(op, *fStatus);
4453 fSetStack.push(new UnicodeSet(), *fStatus); 4453 fSetStack.push(new UnicodeSet(), *fStatus);
4454 } 4454 }
4455 4455
4456 U_NAMESPACE_END 4456 U_NAMESPACE_END
4457 #endif // !UCONFIG_NO_REGULAR_EXPRESSIONS 4457 #endif // !UCONFIG_NO_REGULAR_EXPRESSIONS
4458 4458
OLDNEW
« no previous file with comments | « source/i18n/digitlst.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698