aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/webassembly/webassemblyrunconfigurationaspects.cpp
diff options
context:
space:
mode:
authorTim Jenssen <Tim.Jenssen@qt.io>2019-10-25 19:48:48 +0200
committerTim Jenssen <tim.jenssen@qt.io>2019-10-28 06:55:14 +0000
commit51991e3a3ee855f12cae999b01a93741c77cf6cd (patch)
tree8ac6710efb3918fa43279bdce3b36c6ad6aa8c73 /src/plugins/webassembly/webassemblyrunconfigurationaspects.cpp
parente3904f3b135564834ae78245d79818e72d2edd7b (diff)
WebAssembly: fix crashes
Change-Id: I9a2a44c85a254628f119eb041036492bc3022cdf Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Diffstat (limited to 'src/plugins/webassembly/webassemblyrunconfigurationaspects.cpp')
-rw-r--r--src/plugins/webassembly/webassemblyrunconfigurationaspects.cpp40
1 files changed, 22 insertions, 18 deletions
diff --git a/src/plugins/webassembly/webassemblyrunconfigurationaspects.cpp b/src/plugins/webassembly/webassemblyrunconfigurationaspects.cpp
index aacbc67750..b74d73a5d4 100644
--- a/src/plugins/webassembly/webassemblyrunconfigurationaspects.cpp
+++ b/src/plugins/webassembly/webassemblyrunconfigurationaspects.cpp
@@ -41,24 +41,26 @@ static QStringList detectedBrowsers(ProjectExplorer::Target *target)
{
static QStringList result;
if (result.isEmpty()) {
- const Utils::Environment environment = target->activeBuildConfiguration()->environment();
- const Utils::FilePath emrunPath = environment.searchInPath("emrun");
+ if (auto bc = target->activeBuildConfiguration()) {
+ const Utils::Environment environment = bc->environment();
+ const Utils::FilePath emrunPath = environment.searchInPath("emrun");
- QProcess browserLister;
- browserLister.setProcessEnvironment(environment.toProcessEnvironment());
- browserLister.setProgram(emrunPath.toString());
- browserLister.setArguments({"--list_browsers"});
- browserLister.start(QIODevice::ReadOnly);
+ QProcess browserLister;
+ browserLister.setProcessEnvironment(environment.toProcessEnvironment());
+ browserLister.setProgram(emrunPath.toString());
+ browserLister.setArguments({"--list_browsers"});
+ browserLister.start(QIODevice::ReadOnly);
- if (browserLister.waitForFinished()) {
- const QByteArray output = browserLister.readAllStandardOutput();
- QTextStream ts(output);
- QString line;
- const QRegularExpression regExp(" - (.*):.*");
- while (ts.readLineInto(&line)) {
- const QRegularExpressionMatch match = regExp.match(line);
- if (match.hasMatch())
- result << match.captured(1);
+ if (browserLister.waitForFinished()) {
+ const QByteArray output = browserLister.readAllStandardOutput();
+ QTextStream ts(output);
+ QString line;
+ const QRegularExpression regExp(" - (.*):.*");
+ while (ts.readLineInto(&line)) {
+ const QRegularExpressionMatch match = regExp.match(line);
+ if (match.hasMatch())
+ result << match.captured(1);
+ }
}
}
}
@@ -68,7 +70,8 @@ static QStringList detectedBrowsers(ProjectExplorer::Target *target)
WebBrowserSelectionAspect::WebBrowserSelectionAspect(ProjectExplorer::Target *target)
: m_availableBrowsers(detectedBrowsers(target))
{
- m_currentBrowser = m_availableBrowsers.first();
+ if (!m_availableBrowsers.isEmpty())
+ m_currentBrowser = m_availableBrowsers.first();
setDisplayName(tr("Web browser"));
setId("WebBrowserAspect");
setSettingsKey("RunConfiguration.WebBrowser");
@@ -90,7 +93,8 @@ void WebBrowserSelectionAspect::addToConfigurationLayout(QFormLayout *layout)
void WebBrowserSelectionAspect::fromMap(const QVariantMap &map)
{
- m_currentBrowser = map.value(BROWSER_KEY, m_availableBrowsers.first()).toString();
+ if (!m_availableBrowsers.isEmpty())
+ m_currentBrowser = map.value(BROWSER_KEY, m_availableBrowsers.first()).toString();
}
void WebBrowserSelectionAspect::toMap(QVariantMap &map) const