From 2e59ef8c1c9a0b5a60f2800f055fe103bb85c789 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Mon, 24 Feb 2020 10:56:57 +0100 Subject: [PATCH] Android: Consistently allow Qt version to be nullptr Do not crash when Qt version is nullptr. This was checked for in some places, but not in others. Not sure whether or not it is safe to assume that Qt version is never a nullptr here, so I went for the better-safe-than-sorry option. Change-Id: Ief9a479ee5719204582902bfa72412145658f0c2 Reviewed-by: BogDan Vatra --- src/plugins/android/androiddebugsupport.cpp | 22 ++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/plugins/android/androiddebugsupport.cpp b/src/plugins/android/androiddebugsupport.cpp index 3ffed5e7ecb..fa6b4dd3ace 100644 --- a/src/plugins/android/androiddebugsupport.cpp +++ b/src/plugins/android/androiddebugsupport.cpp @@ -123,8 +123,10 @@ void AndroidDebugSupport::start() qCDebug(androidDebugSupportLog) << "Start. Package name: " << packageName << "PID: " << m_runner->pid().pid(); QtSupport::BaseQtVersion *qtVersion = QtSupport::QtKitAspect::qtVersion(kit); - if (!Utils::HostOsInfo::isWindowsHost() && - AndroidConfigurations::currentConfig().ndkVersion(qtVersion) >= QVersionNumber(11, 0, 0)) { + if (!Utils::HostOsInfo::isWindowsHost() + && (qtVersion + && AndroidConfigurations::currentConfig().ndkVersion(qtVersion) + >= QVersionNumber(11, 0, 0))) { qCDebug(androidDebugSupportLog) << "UseTargetAsync: " << true; setUseTargetAsync(true); } @@ -152,19 +154,21 @@ void AndroidDebugSupport::start() setRemoteChannel(gdbServer); auto qt = static_cast(qtVersion); - QTC_CHECK(qt); const int minimumNdk = qt ? qt->minimumNDK() : 0; int sdkVersion = qMax(AndroidManager::minimumSDK(kit), minimumNdk); // TODO find a way to use the new sysroot layout // instead ~/android/ndk-bundle/platforms/android-29/arch-arm64 // use ~/android/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot - Utils::FilePath sysRoot = AndroidConfigurations::currentConfig().ndkLocation(qtVersion) - .pathAppended("platforms") - .pathAppended(QString("android-%1").arg(sdkVersion)) - .pathAppended(devicePreferredAbi); - setSysRoot(sysRoot); - qCDebug(androidDebugSupportLog) << "Sysroot: " << sysRoot; + if (qtVersion) { + Utils::FilePath sysRoot = AndroidConfigurations::currentConfig() + .ndkLocation(qtVersion) + .pathAppended("platforms") + .pathAppended(QString("android-%1").arg(sdkVersion)) + .pathAppended(devicePreferredAbi); + setSysRoot(sysRoot); + qCDebug(androidDebugSupportLog) << "Sysroot: " << sysRoot; + } } if (isQmlDebugging()) { qCDebug(androidDebugSupportLog) << "QML debugging enabled. QML server: "