1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-16 10:52:55 +08:00

Reduce lifetime of realm context usage in detach scenario

This commit is contained in:
Dean Herbert 2021-01-14 16:33:55 +09:00
parent 8d071f97fb
commit fd582f521c

View File

@ -37,21 +37,21 @@ namespace osu.Game.Overlays.KeyBinding
{
var rulesetId = Ruleset?.ID;
List<RealmKeyBinding> bindings;
using (var realm = realmFactory.GetForRead())
bindings = realm.All<RealmKeyBinding>().Where(b => b.RulesetID == rulesetId && b.Variant == variant).Detach();
foreach (var defaultGroup in Defaults.GroupBy(d => d.Action))
{
var bindings = realm.All<RealmKeyBinding>().Where(b => b.RulesetID == rulesetId && b.Variant == variant).Detach();
int intKey = (int)defaultGroup.Key;
foreach (var defaultGroup in Defaults.GroupBy(d => d.Action))
// one row per valid action.
Add(new KeyBindingRow(defaultGroup.Key, bindings.Where(b => b.ActionInt.Equals(intKey)).ToList())
{
int intKey = (int)defaultGroup.Key;
// one row per valid action.
Add(new KeyBindingRow(defaultGroup.Key, bindings.Where(b => b.ActionInt.Equals(intKey)).ToList())
{
AllowMainMouseButtons = Ruleset != null,
Defaults = defaultGroup.Select(d => d.KeyCombination)
});
}
AllowMainMouseButtons = Ruleset != null,
Defaults = defaultGroup.Select(d => d.KeyCombination)
});
}
Add(new ResetButton