Browse Source

bring back evil strings

lizzie/noexcept-dynarmic
lizzie 22 hours ago
parent
commit
aa361e8600
  1. 26
      src/common/settings_setting.h

26
src/common/settings_setting.h

@ -195,16 +195,22 @@ public:
this->SetValue(this->GetDefault());
return;
}
if constexpr (std::is_same_v<Type, std::string>) {
this->SetValue(input);
} else if constexpr (std::is_same_v<Type, std::optional<u32>>) {
this->SetValue(u32(std::strtoul(input.c_str(), nullptr, 10)));
} else if constexpr (std::is_same_v<Type, bool>) {
this->SetValue(input == "true");
} else if constexpr (std::is_same_v<Type, float>) {
this->SetValue(std::strtof(input.c_str(), nullptr));
} else {
this->SetValue(Type(std::strtoll(input.c_str(), nullptr, 10)));
try {
if constexpr (std::is_same_v<Type, std::string>) {
this->SetValue(input);
} else if constexpr (std::is_same_v<Type, std::optional<u32>>) {
this->SetValue(u32(std::stoul(input)));
} else if constexpr (std::is_same_v<Type, bool>) {
this->SetValue(input == "true");
} else if constexpr (std::is_same_v<Type, float>) {
this->SetValue(std::stof(input));
} else {
this->SetValue(Type(std::stoll(input)));
}
} catch (std::invalid_argument&) {
this->SetValue(this->GetDefault());
} catch (std::out_of_range&) {
this->SetValue(this->GetDefault());
}
}

Loading…
Cancel
Save