diff options
| author | Vaxry <vaxry@vaxry.net> | 2026-05-06 21:04:33 +0100 |
|---|---|---|
| committer | Vaxry <43317083+vaxerski@users.noreply.github.com> | 2026-05-06 21:46:23 +0100 |
| commit | 74ed271d0fbfc833ccd74a57de0969ffb2dc9534 (patch) | |
| tree | 033783cb321c22e40ca8125604615d187b6a48d5 /src | |
| parent | ae0eeea114a87ab3fa29d8abe14bdbcf556ddee1 (diff) | |
config/legacy: fix missing fallbacks crashing device getters
Diffstat (limited to 'src')
| -rw-r--r-- | src/config/legacy/ConfigManager.cpp | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/src/config/legacy/ConfigManager.cpp b/src/config/legacy/ConfigManager.cpp index 566cabb7..04d76260 100644 --- a/src/config/legacy/ConfigManager.cpp +++ b/src/config/legacy/ConfigManager.cpp @@ -1118,20 +1118,36 @@ bool CConfigManager::deviceConfigExplicitlySet(const std::string& dev, const std } int CConfigManager::getDeviceInt(const std::string& dev, const std::string& v, const std::string& fallback) { - return std::any_cast<Hyprlang::INT>(getConfigValueSafeDevice(dev, v, fallback)->getValue()); + auto val = getConfigValueSafeDevice(dev, v, fallback); + if (!val) + return {}; + + return std::any_cast<Hyprlang::INT>(val->getValue()); } float CConfigManager::getDeviceFloat(const std::string& dev, const std::string& v, const std::string& fallback) { - return std::any_cast<Hyprlang::FLOAT>(getConfigValueSafeDevice(dev, v, fallback)->getValue()); + auto val = getConfigValueSafeDevice(dev, v, fallback); + if (!val) + return {}; + + return std::any_cast<Hyprlang::FLOAT>(val->getValue()); } Vector2D CConfigManager::getDeviceVec(const std::string& dev, const std::string& v, const std::string& fallback) { - auto vec = std::any_cast<Hyprlang::VEC2>(getConfigValueSafeDevice(dev, v, fallback)->getValue()); + auto val = getConfigValueSafeDevice(dev, v, fallback); + if (!val) + return {}; + + auto vec = std::any_cast<Hyprlang::VEC2>(val->getValue()); return {vec.x, vec.y}; } std::string CConfigManager::getDeviceString(const std::string& dev, const std::string& v, const std::string& fallback) { - auto VAL = std::string{std::any_cast<Hyprlang::STRING>(getConfigValueSafeDevice(dev, v, fallback)->getValue())}; + auto val = getConfigValueSafeDevice(dev, v, fallback); + if (!val) + return ""; + + auto VAL = std::string{std::any_cast<Hyprlang::STRING>(val->getValue())}; if (VAL == STRVAL_EMPTY) return ""; |
