diff options
author | hjk <hjk121@nokiamail.com> | 2013-04-19 16:29:23 +0200 |
---|---|---|
committer | hjk <hjk121@nokiamail.com> | 2013-04-19 18:41:22 +0200 |
commit | 893eb51c751151c876a374f0aad5bd114434187e (patch) | |
tree | 63eaebc33f29e725e7af2cfdb6fe1bdb719fa794 /src/plugins/qtsupport/baseqtversion.cpp | |
parent | fe2fa214053a4fc7763fb55fb17a091ff1261ed3 (diff) | |
download | qt-creator-893eb51c751151c876a374f0aad5bd114434187e.tar.gz |
QtVersionNumber: Make it smaller and faster
This yields 1% speedup on total startup with -noload Welcome
Change-Id: Ib3f1e45032c4a2dbe21ae86a1df65d118f89cba1
Reviewed-by: hjk <hjk121@nokiamail.com>
Diffstat (limited to 'src/plugins/qtsupport/baseqtversion.cpp')
-rw-r--r-- | src/plugins/qtsupport/baseqtversion.cpp | 41 |
1 files changed, 7 insertions, 34 deletions
diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp index 4fc4204c24..4f7c9d5b28 100644 --- a/src/plugins/qtsupport/baseqtversion.cpp +++ b/src/plugins/qtsupport/baseqtversion.cpp @@ -76,15 +76,9 @@ QtVersionNumber::QtVersionNumber(int ma, int mi, int p) QtVersionNumber::QtVersionNumber(const QString &versionString) { - if (!checkVersionString(versionString)) { + if (::sscanf(versionString.toLatin1().constData(), "%d.%d.%d", + &majorVersion, &minorVersion, &patchVersion) != 3) majorVersion = minorVersion = patchVersion = -1; - return; - } - - QStringList parts = versionString.split(QLatin1Char('.')); - majorVersion = parts.at(0).toInt(); - minorVersion = parts.at(1).toInt(); - patchVersion = parts.at(2).toInt(); } QtVersionNumber::QtVersionNumber() @@ -92,34 +86,13 @@ QtVersionNumber::QtVersionNumber() majorVersion = minorVersion = patchVersion = -1; } -bool QtVersionNumber::checkVersionString(const QString &version) const -{ - int dots = 0; - const QString validChars = QLatin1String("0123456789."); - foreach (const QChar &c, version) { - if (!validChars.contains(c)) - return false; - if (c == QLatin1Char('.')) - ++dots; - } - if (dots != 2) - return false; - return true; -} - bool QtVersionNumber::operator <(const QtVersionNumber &b) const { - if (majorVersion < b.majorVersion) - return true; - if (majorVersion > b.majorVersion) - return false; - if (minorVersion < b.minorVersion) - return true; - if (minorVersion > b.minorVersion) - return false; - if (patchVersion < b.patchVersion) - return true; - return false; + if (majorVersion != b.majorVersion) + return majorVersion < b.majorVersion; + if (minorVersion != b.minorVersion) + return minorVersion < b.minorVersion; + return patchVersion < b.patchVersion; } bool QtVersionNumber::operator >(const QtVersionNumber &b) const |