1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-29 11:42:58 +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; var rulesetId = Ruleset?.ID;
List<RealmKeyBinding> bindings;
using (var realm = realmFactory.GetForRead()) 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; AllowMainMouseButtons = Ruleset != null,
Defaults = defaultGroup.Select(d => d.KeyCombination)
// 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)
});
}
} }
Add(new ResetButton Add(new ResetButton