Fix signed-unsigned mismatch with gcc 4.9.0
Android NDK r10d with gcc 4.9.0 fails with:
gglobal/qoperatingsystemversion.cpp: In static member function 'static QOperatingSystemVersion QOperatingSystemVersion::current()':
global/qoperatingsystemversion.cpp:150:25: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
if (sdk >= 1 && sdk <= sizeof(versions) / sizeof(versions[0])) {
Switch to size_t and store the array index in order to simplify.
Code is new in dev, introduced in 26b2ad5a18
Change-Id: Ia19cfcb9789e225760f4d1a05c91463f4c7c2302
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
bb10
parent
0d43d4f794
commit
dcbff0a9e1
|
|
@ -146,14 +146,14 @@ QOperatingSystemVersion QOperatingSystemVersion::current()
|
|||
};
|
||||
|
||||
// This will give us at least the first 2 version components
|
||||
const int sdk = static_cast<int>(QJNIObjectPrivate::getStaticField<jint>("android/os/Build$VERSION", "SDK_INT"));
|
||||
if (sdk >= 1 && sdk <= sizeof(versions) / sizeof(versions[0])) {
|
||||
version.m_major = versions[sdk - 1][0];
|
||||
version.m_minor = versions[sdk - 1][1];
|
||||
const size_t versionIdx = size_t(QJNIObjectPrivate::getStaticField<jint>("android/os/Build$VERSION", "SDK_INT")) - 1;
|
||||
if (versionIdx < sizeof(versions) / sizeof(versions[0])) {
|
||||
version.m_major = versions[versionIdx][0];
|
||||
version.m_minor = versions[versionIdx][1];
|
||||
}
|
||||
|
||||
// API level 6 was exactly version 2.0.1
|
||||
version.m_micro = sdk == 6 ? 1 : -1;
|
||||
version.m_micro = versionIdx == 5 ? 1 : -1;
|
||||
#else
|
||||
version.m_major = -1;
|
||||
version.m_minor = -1;
|
||||
|
|
|
|||
Loading…
Reference in New Issue