diff options
author | Yuhang Zhao <2546789017@qq.com> | 2022-01-11 14:23:00 +0800 |
---|---|---|
committer | Yuhang Zhao <2546789017@qq.com> | 2022-01-12 21:00:45 +0800 |
commit | 831b3506fcdd256e37f30e57334b09c890f0c481 (patch) | |
tree | 82d4cbc707b6d8cf0e4af89deb109a8258764009 /src/corelib/global | |
parent | 4a4240f1bdf184a52a22b94f37090b07434770e7 (diff) |
QOperatingSystemVersion: Make implementation consistent on all platforms
Only Windows is using lambda function, change to static member
function to be consistent with other platforms.
QOperatingSystemVersionBase::current()'s implementation is exactly
the same on all platforms, so move it to the common source file
instead of implementing it three times on each platform.
Change-Id: I4099235b3b041a9a374e21d537649047ee03e62b
Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/global')
-rw-r--r-- | src/corelib/global/qoperatingsystemversion.cpp | 12 | ||||
-rw-r--r-- | src/corelib/global/qoperatingsystemversion_darwin.mm | 6 | ||||
-rw-r--r-- | src/corelib/global/qoperatingsystemversion_win.cpp | 17 |
3 files changed, 13 insertions, 22 deletions
diff --git a/src/corelib/global/qoperatingsystemversion.cpp b/src/corelib/global/qoperatingsystemversion.cpp index 8c4a393742..2255b08f68 100644 --- a/src/corelib/global/qoperatingsystemversion.cpp +++ b/src/corelib/global/qoperatingsystemversion.cpp @@ -155,6 +155,12 @@ QOperatingSystemVersion QOperatingSystemVersion::current() return QOperatingSystemVersionBase::current(); } +QOperatingSystemVersionBase QOperatingSystemVersionBase::current() +{ + static const QOperatingSystemVersionBase v = current_impl(); + return v; +} + #if !defined(Q_OS_DARWIN) && !defined(Q_OS_WIN) QOperatingSystemVersionBase QOperatingSystemVersionBase::current_impl() { @@ -228,12 +234,6 @@ QOperatingSystemVersionBase QOperatingSystemVersionBase::current_impl() #endif return version; } - -QOperatingSystemVersionBase QOperatingSystemVersionBase::current() -{ - static const QOperatingSystemVersionBase v = current_impl(); - return v; -} #endif static inline int compareVersionComponents(int lhs, int rhs) diff --git a/src/corelib/global/qoperatingsystemversion_darwin.mm b/src/corelib/global/qoperatingsystemversion_darwin.mm index 1666b4e9cf..82de319d49 100644 --- a/src/corelib/global/qoperatingsystemversion_darwin.mm +++ b/src/corelib/global/qoperatingsystemversion_darwin.mm @@ -53,10 +53,4 @@ QOperatingSystemVersionBase QOperatingSystemVersionBase::current_impl() return v; } -QOperatingSystemVersionBase QOperatingSystemVersionBase::current() -{ - static const QOperatingSystemVersionBase v = current_impl(); - return v; -} - QT_END_NAMESPACE diff --git a/src/corelib/global/qoperatingsystemversion_win.cpp b/src/corelib/global/qoperatingsystemversion_win.cpp index bcb015af39..51f283072a 100644 --- a/src/corelib/global/qoperatingsystemversion_win.cpp +++ b/src/corelib/global/qoperatingsystemversion_win.cpp @@ -113,17 +113,14 @@ OSVERSIONINFOEX qWindowsVersionInfo() return realResult; } -QOperatingSystemVersionBase QOperatingSystemVersionBase::current() +QOperatingSystemVersionBase QOperatingSystemVersionBase::current_impl() { - static QOperatingSystemVersionBase v = [](){ - QOperatingSystemVersionBase v; - v.m_os = currentType(); - const OSVERSIONINFOEX osv = qWindowsVersionInfo(); - v.m_major = osv.dwMajorVersion; - v.m_minor = osv.dwMinorVersion; - v.m_micro = osv.dwBuildNumber; - return v; - }(); + QOperatingSystemVersionBase v; + v.m_os = currentType(); + const OSVERSIONINFOEX osv = qWindowsVersionInfo(); + v.m_major = osv.dwMajorVersion; + v.m_minor = osv.dwMinorVersion; + v.m_micro = osv.dwBuildNumber; return v; } |