From 74ed271d0fbfc833ccd74a57de0969ffb2dc9534 Mon Sep 17 00:00:00 2001 From: Vaxry Date: Wed, 6 May 2026 21:04:33 +0100 Subject: [PATCH] config/legacy: fix missing fallbacks crashing device getters --- src/config/legacy/ConfigManager.cpp | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/config/legacy/ConfigManager.cpp b/src/config/legacy/ConfigManager.cpp index 566cabb72..04d762607 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(getConfigValueSafeDevice(dev, v, fallback)->getValue()); + auto val = getConfigValueSafeDevice(dev, v, fallback); + if (!val) + return {}; + + return std::any_cast(val->getValue()); } float CConfigManager::getDeviceFloat(const std::string& dev, const std::string& v, const std::string& fallback) { - return std::any_cast(getConfigValueSafeDevice(dev, v, fallback)->getValue()); + auto val = getConfigValueSafeDevice(dev, v, fallback); + if (!val) + return {}; + + return std::any_cast(val->getValue()); } Vector2D CConfigManager::getDeviceVec(const std::string& dev, const std::string& v, const std::string& fallback) { - auto vec = std::any_cast(getConfigValueSafeDevice(dev, v, fallback)->getValue()); + auto val = getConfigValueSafeDevice(dev, v, fallback); + if (!val) + return {}; + + auto vec = std::any_cast(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(getConfigValueSafeDevice(dev, v, fallback)->getValue())}; + auto val = getConfigValueSafeDevice(dev, v, fallback); + if (!val) + return ""; + + auto VAL = std::string{std::any_cast(val->getValue())}; if (VAL == STRVAL_EMPTY) return "";