diff options
Diffstat (limited to 'src/corelib/tools/qdatetimeparser.cpp')
| -rw-r--r-- | src/corelib/tools/qdatetimeparser.cpp | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/corelib/tools/qdatetimeparser.cpp b/src/corelib/tools/qdatetimeparser.cpp index 62dd25e072d..4ec82c1dab3 100644 --- a/src/corelib/tools/qdatetimeparser.cpp +++ b/src/corelib/tools/qdatetimeparser.cpp @@ -713,7 +713,6 @@ int QDateTimeParser::parseSection(const QDateTime ¤tValue, int sectionInde const int sectionmaxsize = sectionMaxSize(sectionIndex); QStringRef sectionTextRef = text.midRef(index, sectionmaxsize); - int sectiontextSize = sectionTextRef.size(); QDTPDEBUG << "sectionValue for" << sn.name() << "with text" << text << "and st" << sectionTextRef @@ -784,26 +783,25 @@ int QDateTimeParser::parseSection(const QDateTime ¤tValue, int sectionInde case MinuteSection: case SecondSection: case MSecSection: { + int sectiontextSize = sectionTextRef.size(); if (sectiontextSize == 0) { num = 0; used = 0; state = Intermediate; } else { + for (int i = 0; i < sectiontextSize; ++i) { + if (sectionTextRef.at(i).isSpace()) + sectiontextSize = i; // which exits the loop + } + const int absMax = absoluteMax(sectionIndex); QLocale loc; bool ok = true; int last = -1; used = -1; - QStringRef digitsStr = sectionTextRef; - for (int i = 0; i < sectiontextSize; ++i) { - if (digitsStr.at(i).isSpace()) { - sectiontextSize = i; - break; - } - } - const int max = qMin(sectionmaxsize, sectiontextSize); + QStringRef digitsStr = sectionTextRef.left(max); for (int digits = max; digits >= 1; --digits) { digitsStr.truncate(digits); int tmp = (int)loc.toUInt(digitsStr, &ok); |
