From 256baf6d60f10fe2187ba45bfc24d634e9fb2b52 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Sat, 24 Mar 2018 05:40:26 +0900 Subject: [PATCH] Move binding to LoadComplete Previously there was a chance that it would still never get disposed, as the event was bound in async load, before it was in a state it can be recursively disposed via the PlayerLoader call. --- osu.Game/Skinning/LocalSkinOverrideContainer.cs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/osu.Game/Skinning/LocalSkinOverrideContainer.cs b/osu.Game/Skinning/LocalSkinOverrideContainer.cs index d000127859..95cdde2f48 100644 --- a/osu.Game/Skinning/LocalSkinOverrideContainer.cs +++ b/osu.Game/Skinning/LocalSkinOverrideContainer.cs @@ -55,14 +55,19 @@ namespace osu.Game.Skinning var dependencies = new DependencyContainer(base.CreateLocalDependencies(parent)); fallbackSource = dependencies.Get(); - if (fallbackSource != null) - fallbackSource.SourceChanged += onSourceChanged; - dependencies.CacheAs(this); return dependencies; } + protected override void LoadComplete() + { + base.LoadComplete(); + + if (fallbackSource != null) + fallbackSource.SourceChanged += onSourceChanged; + } + protected override void Dispose(bool isDisposing) { base.Dispose(isDisposing);