1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-14 15:33:05 +08:00

Add extra extra safety against attempting to load a previously expired editor

This commit is contained in:
Dean Herbert 2021-12-30 16:02:08 +09:00
parent b1a444180f
commit ef49f2ed0e

View File

@ -73,15 +73,23 @@ namespace osu.Game.Skinning.Editor
var editor = new SkinEditor(target);
editor.State.BindValueChanged(editorVisibilityChanged);
skinEditor = editor;
// Schedule ensures that if `Show` is called before this overlay is loaded,
// it will not throw (LoadComponentAsync requires the load target to be in a loaded state).
Schedule(() =>
{
Debug.Assert(editor != null);
LoadComponentAsync(editor, AddInternal);
});
if (editor != skinEditor)
return;
skinEditor = editor;
LoadComponentAsync(editor, _ =>
{
if (editor != skinEditor)
return;
AddInternal(editor);
});
});
}
else
skinEditor.Show();