From e5c3a0eef70bbc551447ab6158d9dfbb4c36e6aa Mon Sep 17 00:00:00 2001 From: DavidRGriswold Date: Wed, 3 Sep 2025 13:16:32 +0100 Subject: [PATCH] android: Prevent crash when editing a slider option with an out of bounds value Co-authored-by: OpenSauce04 --- .../features/settings/model/view/SliderSetting.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/view/SliderSetting.kt b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/view/SliderSetting.kt index 79406594e..46ed42905 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/view/SliderSetting.kt +++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/view/SliderSetting.kt @@ -1,4 +1,4 @@ -// Copyright Citra Emulator Project / Lime3DS Emulator Project +// Copyright Citra Emulator Project / Azahar Emulator Project // Licensed under GPLv2 or any later version // Refer to the license.txt file included. @@ -10,7 +10,6 @@ import org.citra.citra_emu.features.settings.model.AbstractSetting import org.citra.citra_emu.features.settings.model.FloatSetting import org.citra.citra_emu.features.settings.model.ScaledFloatSetting import org.citra.citra_emu.utils.Log -import kotlin.math.roundToInt class SliderSetting( setting: AbstractSetting?, @@ -27,7 +26,8 @@ class SliderSetting( val selectedFloat: Float get() { val setting = setting ?: return defaultValue!!.toFloat() - return when (setting) { + + val ret = when (setting) { is AbstractIntSetting -> setting.int.toFloat() is FloatSetting -> setting.float is ScaledFloatSetting -> setting.float @@ -36,8 +36,8 @@ class SliderSetting( -1f } } + return ret.coerceIn(min.toFloat(), max.toFloat()) } - /** * Write a value to the backing int. If that int was previously null, * initializes a new one and returns it, so it can be added to the Hashmap.