Environment: Avoid calling throwing functions

We do not declare any `throws` and this way we can also use QTC_GUARD

Coverity-Id: 1586292
Change-Id: I75efd625e096bf02c1f7a85b9573bd134a9fb020
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Eike Ziller
2024-05-06 17:12:32 +02:00
parent 23b7ac84a9
commit ec8d86e954

View File

@@ -433,17 +433,26 @@ const NameValueDictionary &Environment::resolved() const
m_dict = Environment::systemEnvironment().toDictionary();
m_fullDict = true;
break;
case SetFixedDictionary:
m_dict = std::get<SetFixedDictionary>(item);
case SetFixedDictionary: {
const auto dict = std::get_if<SetFixedDictionary>(&item);
if (QTC_GUARD(dict)) {
m_dict = *dict;
m_fullDict = true;
}
break;
}
case SetValue: {
auto [key, value, enabled] = std::get<SetValue>(item);
const auto setvalue = std::get_if<SetValue>(&item);
if (QTC_GUARD(setvalue)) {
auto [key, value, enabled] = *setvalue;
m_dict.set(key, value, enabled);
}
break;
}
case SetFallbackValue: {
auto [key, value] = std::get<SetFallbackValue>(item);
const auto fallbackvalue = std::get_if<SetFallbackValue>(&item);
if (QTC_GUARD(fallbackvalue)) {
auto [key, value] = *fallbackvalue;
if (m_fullDict) {
if (m_dict.value(key).isEmpty())
m_dict.set(key, value, true);
@@ -451,13 +460,19 @@ const NameValueDictionary &Environment::resolved() const
QTC_ASSERT(false, qDebug() << "operating on partial dictionary");
m_dict.set(key, value, true);
}
}
break;
}
case UnsetValue:
m_dict.unset(std::get<UnsetValue>(item));
case UnsetValue: {
const auto unsetvalue = std::get_if<UnsetValue>(&item);
if (QTC_GUARD(unsetvalue))
m_dict.unset(*unsetvalue);
break;
}
case PrependOrSet: {
auto [key, value, sep] = std::get<PrependOrSet>(item);
const auto prependorset = std::get_if<PrependOrSet>(&item);
if (QTC_GUARD(prependorset)) {
auto [key, value, sep] = *prependorset;
QTC_ASSERT(!key.contains('='), return m_dict);
const auto it = m_dict.findKey(key);
if (it == m_dict.m_values.end()) {
@@ -468,10 +483,13 @@ const NameValueDictionary &Environment::resolved() const
if (!it.value().first.startsWith(toPrepend))
it.value().first.prepend(toPrepend);
}
}
break;
}
case AppendOrSet: {
auto [key, value, sep] = std::get<AppendOrSet>(item);
const auto appendorset = std::get_if<AppendOrSet>(&item);
if (QTC_GUARD(appendorset)) {
auto [key, value, sep] = *appendorset;
QTC_ASSERT(!key.contains('='), return m_dict);
const auto it = m_dict.findKey(key);
if (it == m_dict.m_values.end()) {
@@ -482,11 +500,15 @@ const NameValueDictionary &Environment::resolved() const
if (!it.value().first.endsWith(toAppend))
it.value().first.append(toAppend);
}
}
break;
}
case Modify: {
EnvironmentItems items = std::get<Modify>(item);
const auto modify = std::get_if<Modify>(&item);
if (QTC_GUARD(modify)) {
EnvironmentItems items = *modify;
m_dict.modify(items);
}
break;
}
case SetupEnglishOutput: